繼承跟多型的區別
在計算機語言中有一種是JAVA的語言,裡面有一些方法,繼承,過載,重寫。下面是小編為你整理的,供大家閱覽!
過載,繼承,重寫和多型的區別:
繼承是子類獲得父類的成員,重寫是繼承後重新實現父類的方法。
過載是在一個類裡一系列引數不同名字相同的方法。
多型則是為了避免在父類裡大量過載引起程式碼臃腫且難於維護。
網上看到一個有趣的說法是:繼承是子類使用父類的方法,而多型則是父類使用子類的方法。
下面的例子包含了這四種實現:
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類的方法是過載。
比較就可以發現多型對過載的優點:如果用過載,
則在父類裡要對應每一個子類都過載一個取得邊數的方法;如果用多型,
則父類只提供取得邊數的介面,至於取得哪個形狀的邊數,怎樣取得,
在子類裡各自實現***重寫***。