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

  • 作者:由 匿名使用者 發表于 遊戲
  • 2023-01-10

繼承,多型,過載和重寫的區別語澍璐遠 2018-05-15

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

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

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

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

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

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

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

下列測試程式碼:

package cn。lufice。test02;

public class Instrument {

public void play(int i){

System。out。println(“Instrument”+i);

}

//過載

public void play( int i,String str){

System。out。println(“Brass ”+i+“ ”+str);

}

}

public class Brass extends Instrument {

public void play( int i,String str){

System。out。println(“Brass ”+i+“ ”+str);

}

}

public class Wind extends Instrument{

//重寫

public void play(int i){

System。out。println(“Wind ”+i);

}

public static void main(String[] args) {

Instrument instrument = new Wind();//多型

Brass brass = new Brass();//繼承

instrument。play(10);

brass。play(20,“barss”);

}

}

/*Output:

Wind 10

Brass 20 barss

*/

Top