重載,繼承,重寫和多態的區別:


重載,繼承,重寫和多態的區別:
繼承是子類獲得父類的成員,重寫是繼承后重新實現父類的方法。
重載是在一個類里一系列參數不同名字相同的方法。
多態則是為了避免在父類里大量重載引起代碼臃腫且難於維護。

網上看到一個有趣的說法是:繼承是子類使用父類的方法,而多態則是父類使用子類的方法。
下面的例子包含了這四種實現:

class Triangle extends Shape {

public int getSides() { //重寫
return 3;
}
}

class Rectangle extends Shape {
public int getSides(int i) { //重載
return i;
}
}

public class Shape {
public boolean isSharp(){
return true;
}
public int getSides(){
return 0 ;
}
public int getSides(Triangle tri){
return 3 ;
}
public int getSides(Rectangle rec){
return 4 ;
}

public static void main(String[] args) {
Triangle tri = new Triangle(); //繼承
System.out.println("Triangle is a type of sharp? " + tri.isSharp());
Shape shape = new Triangle(); //多態
System.out.println("My shape has " + shape.getSides() + " sides.");
}
}

注意Triangle類的方法是重寫,而Rectangle類的方法是重載。
比較就可以發現多態對重載的優點:如果用重載,
則在父類里要對應每一個子類都重載一個取得邊數的方法;如果用多態,
則父類只提供取得邊數的接口,至於取得哪個形狀的邊數,怎樣取得,
在子類里各自實現(重寫)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM