過載和重寫的區別,過載和重寫有什麼區別

2022-03-09 05:34:46 字數 5745 閱讀 2221

1樓:濮陽靈波須璐

1.重寫必須繼承,過載不用。

2.重寫的方法名,引數數目相同,引數型別相容,過載的方法名相同,引數列表不同。

3.重寫的方法修飾符大於等於父類的方法,過載和修飾符無關。

4.重寫不可以丟擲父類沒有丟擲的一般異常,可以丟擲執行時異常

過載和重寫有什麼區別

2樓:畢半雙暢子

過載和重寫的區別有以下幾點:

一、定義上的區別:

1、過載是指不同的函式使用相同的函式名,但是函式的引數個數或型別不同。呼叫的時候根據函式的引數來區別不同的函式。

2、覆蓋(也叫重寫)是指在派生類中重新對基類中的虛函式(注意是虛函式)重新實現。即函式名和引數都一樣,只是函式的實現體不一樣。

二、規則上的不同:

1、過載的規則:

①必須具有不同的引數列表。

②可以有不同的訪問修飾符。

③可以丟擲不同的異常。

2、重寫方法的規則:

①引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。

②返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。

③訪問修飾符的限制一定要大於被重寫方法的訪問修飾符。

④重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。

三、類的關係上的區別:

重寫是子類和父類之間的關係,是垂直關係;過載是同乙個類中方法之間的關係,是水平關係。

3樓:盧初南滿閎

區別就是

:過載實現與乙個類

,重寫實現於子類中,

過載要求方法名相同

引數數量以及型別不完全相同,重寫方法名相同引數數量類

型完全相同,

過載返回值必須相同,否則不構成過載,重寫返回值無關,過載是靜態多型,重寫是動態多型。

都是多型的體現

。oop

三大特徵

:封裝繼承

多型==》過載

重寫抽象

4樓:費施詩魏泰

簡單的說過載是用父類的方法

重寫就是實現父類不能實現的方法

5樓:墨皓巫會

1.重寫必須繼承,過載不用。

2.重寫的方法名,引數數目相同,引數型別相容,過載的方法名相同,引數列表不同

3.重寫的方法修飾符大於等於父類的方法,過載和修飾符無關。

4.重寫不可以丟擲父類沒有丟擲的一般異常,可以丟擲執行時異常

j**a裡 過載 和 重寫 的區別?

方法過載和重寫的區別

6樓:裱叔叔

方法過載:

方法過載是指在乙個類中定義多個同名的方法,但要求每個方法具有不同的引數的型別或引數的個數。方法過載通常用於建立完成一組任務相似但引數的型別或引數的個數不同的方法。

重寫:在c#中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋。

重寫與過載的區別在於:

重寫多型性起作用,對呼叫被過載過的方法可以大大減少**的輸入量,同乙個方法名只要往裡面傳遞不同的引數就可以擁有不同的功能或返回值。用好重寫和過載可以設計乙個結構清晰而簡潔的類,可以說重寫和過載在編寫**過程中的作用非同一般.

擴充套件資料

c語言:

c#旨在設計成為一種「簡單、現代、通用」,以及物件導向的程式語言,此種語言的實現,應提供對於以下軟體工程要素的支援:強型別檢查、陣列維度檢查、未初始化的變數引用檢測、自動垃圾收集(garbage collection,指一種自動記憶體釋放技術)。軟體必須做到強大、持久,並具有較強的程式設計生產力。

為使程式設計師容易遷移到這種語言,源**的可移植性十分重要,尤其是對於那些已熟悉c和c++的程式設計師而言。對國際化的支援非常重要。c#適合為獨立和嵌入式的系統編寫程式,從使用複雜作業系統的大型系統到特定應用的小型系統均適用。

7樓:女神向善

兩者的區別是條件不同:

過載的條件:

1.必須在同乙個類中

2.方法名必須相同

3.引數列表不能相同。

重寫的條件:

1. 在不同的類中

2. 發生方法重寫的兩個方法返回值,方法名,引數列表必須完全一致

3. 子類丟擲的異常不能超過父類相應的方法丟擲的異常

4. 子類方法的訪問級別不能低於父類相應方法的訪問級別(public,package,protected, private)

5.方法體不同  super()呼叫父類構造,super.只能呼叫父類的例項方法 this()呼叫該類的其他構造方法,this.

呼叫類的屬性,方法 如果父類有有參構造,子類必須定義構造方法。

擴充套件資料:

1、重寫方法的規則:

(1) 引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載。

(2)返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。

(3)訪問修飾符的限制一定要大於被重寫方法的訪問修飾符。(public>protected>default>private)

(4)重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。

例如, 父類的乙個方法申明了乙個檢查異常ioexception,在重寫這個方法是就不能丟擲exception,只能丟擲ioexception的子類異常,可以丟擲非檢查異常.

2、過載方法的規則:

(1)必須具有不同的引數列表;

(2)可以有不同的返回型別,只要引數列表不同就可以了;

(3)可以有不同的訪問修飾符;

(4)可以丟擲不同的異常;

8樓:卓逸智慧型錦囊團

過載:過載字面意思多次的意思,也就是同乙個方法實現多個不同的邏輯,並可以在同乙個類中可以實現。其實現的原理是,方法名相同,引數的個數或者型別不同即可。

重寫:重寫就是要重新去寫(實現),乙個類中不可能兩個定義一樣的方法。因此,重寫就是子類對父類定義的方法重新實現一次。

擴充套件資料

一、方法過載的具體規範:

1、必須具有不同的引數列表;

2、可以有不同的返回型別,只要引數列表不同就可以了;

3、可以有不同的訪問修飾符;

4、可以丟擲不同的異常。

二、方法重寫的具體規範:

1、引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載;

2、返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載;

3、訪問修飾符的限制一定要大於被重寫方法的訪問修飾符號、(public>protected>default>private);

4、重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。

9樓:靠名真tm難起

1.重寫方法名、引數、返回值相同;過載引數型別、個數、順序至少有乙個不相同。

2.重寫存在於父類和子類之間;過載存在於父類和子類、同類中。

2.重寫發生在乙個類中;過載發生在繼承類中。

4.被重寫的方法不能擁有更嚴格的許可權;過載對許可權沒有要求。

10樓:文件類共創空間

1.重寫必須繼承,過載不用。

2.重寫的方法名,引數數目相同,引數型別相容,過載的方法名相同,引數列表不同。

3.重寫的方法修飾符大於等於父類的方法,過載和修飾符無關。

4.重寫不可以丟擲父類沒有丟擲的一般異常,可以丟擲執行時異常

11樓:匿名使用者

1、過載:

方法名相同,引數列表不同

2、重寫:

也叫覆蓋,指在子類中定義乙個與父類中方法同名同引數列表的方法。因為子類會繼承父類的方法,而重寫就是將從父類繼承過來的方法重新定義一次,重新填寫方法中的**。

12樓:匿名使用者

重寫是子類的方法覆蓋父類的方法,要求方法名和引數都相同

過載是在同乙個類中的兩個或兩個以上的方法,擁有相同的方法名,但是引數卻不相同,方法體也不相同,最常見的過載的例子就是類的建構函式,可以參考api幫助文件看看類的構造方法

13樓:匿名使用者

根本區別:

重寫(重構)很直觀啊,子類覆蓋了父類的同名同參同返回值的方法,用子類呼叫的只會是重寫的方法

過載,同名而已。

14樓:d調的華麗白羊

對對對古古怪怪田剛回家

繼承,多型,過載和重寫的區別

15樓:語澍璐遠

繼承:當多個類具有相同的特徵(屬性)和行為(方法),為了實現**復用,需要子類繼承父類的特徵和行為。使得子類具有父類的各種屬性和方法,除了具有父類的特徵和行為,還具有一些自己特殊的特徵和行為。

多型:當乙個類需要表現出多種形態,具有多種實現方式。避免了在父類裡大量過載引起**臃腫且難於維護,增強程式的可擴充套件性及可維護性,使**更加簡潔。

子類重寫父類的方法。使子類具有不同的方法實現。

可以簡單理解為:繼承是子類使用父類的方法,而多型則是父類使用子類的方法。

重寫:如果在子類中定義的乙個方法,其名稱、返回型別及引數列表正好與父類中某個方法的名稱、返回型別及引數列表相匹配,那麼可以說,子類的方法重寫了父類的方法。

過載:多個同名而不同引數的方法之間,互相稱之為過載方法。

介面:介面把方法的特徵和實現分割開來。它本身沒有任何實現,不涉及表象,只描述public行為,所以介面比抽象類更抽象化。但是介面不是類,所以不能被例項化。

下列測試**:

package cn.lufice.test02;

public class instrument

//過載

public void play( int i,string str)

}public class brass extends instrument

}public class wind extends instrument

public static void main(string args)

}/*output:

wind 10

brass 20 barss*/

過載和重寫有什麼區別

16樓:xummer_昔年

重寫:子類的方法覆蓋父類的方法,要求方法名和引數都相同;

過載:在同乙個類中的兩個或兩個以上的方法,擁有相同的方法名,但是引數卻不相同,方法體也不相同。

重寫方法的規則:

1、引數列表必須完全與被重寫的方法相同;

2、返回的型別必須一直與被重寫的方法的返回型別相同;

3、訪問修飾符的限制一定要大於被重寫方法的訪問修飾符;

4、重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。

過載的規則:

1必須具有不同的引數列表;

2可以有不同的返回型別,只要引數列表不同就可;

3、可以有不同的訪問修飾符;

4、可以丟擲不同的異常。

17樓:匿名使用者

過載是發生在同乙個類中,幾個函式名字相同但是簽名(引數型別,引數列表)不同。這幾個函式的關係就叫做過載。

重寫是發生在父類和子類之間,在子類中重寫父類中的函式,只能修改函式內容,而不能修改函式簽名。

什麼是電動機的輕載啟動,電機過載啟動和輕載啟動的電流一樣大嗎

輕載啟動是正常的啟動方式,它對電動機繞組不會造成破壞性影響 過載啟動是一種不得不得已而為之的啟動方式。在需要過載啟動時,必須改變電動機的啟動方式,即不能直接的全壓啟動。目前比較實用的方式有 變頻啟動 交流電動機 降壓啟動 交直流均可 轉子串電阻啟動 繞線轉子適用 星三角轉換啟動 屬於降壓啟動的一種 ...

水泥和混凝土的區別,水泥和混凝土的區別是什麼

混凝土和水泥的區別可以簡單理解為混凝土是以水泥為膠結材料,以天然砂 石為骨料,加水拌合,經澆築成型,凝結硬化形成的固體材料。水泥是加水拌和成塑性漿體,能膠結砂石等適當材料,並能在空氣和水中硬化的粉狀水硬性膠凝材料。水泥是水泥混凝土的一部分。1 混凝土簡介 混凝土是由膠凝材料,粒狀材料及其它外加材料按...

英格蘭和英國的區別,英國和英格蘭的區別是什麼?

英國是由英格蘭,威爾斯和北愛爾蘭組成的!前面說漏了,由英格蘭 北愛爾蘭 威爾斯 蘇格蘭四國組成聯合王國,首都仍在英格蘭首都倫敦,主體還是英格蘭,所以習慣上稱英國!四個國家當然有四個國旗咯!他們組成的聯合國,就是英國!國旗當然也會統一!英國全名叫做大不列顛及北愛爾蘭聯合王國,包括英格蘭,蘇格蘭,威爾斯...