繼承是子類使用父類的方法,多型是父類使用子類的方法

2021-05-25 17:44:46 字數 722 閱讀 4614

網上看到乙個有趣的說法是:繼承是子類使用父類的方法,而多型則是父類使用子類的方法。

下面的例子包含了這四種實現:

class ******** extends shape

class rectangle extends shape

public class shape

public int getsides(******** tri)

public int getsides(rectangle rec)

public static void main(string args) {   

******** tri = new ********();   

system.out.println("******** is a type of sharp? " + tri.issharp());   

shape shape = new ********();   

system.out.println("my shape has " + shape.getsides() + " sides.");

紅色是過載,綠色是重寫,藍色是繼承,粉紅是多型注意********類的方法是重寫,而rectangle類的方法是過載。比較紅色的和粉紅的部分就可以發現多型對過載的優點:如果用過載,則在父類裡要對應每乙個子類都過載乙個取得邊數的方法;如果用多型,則父類只提供取得邊數的介面,至於取得哪個形狀的邊數,怎樣取得,在子類裡各自實現(重寫)。

php父類繼承子類 PHP父類方法繼承問題

有幾個類的很相似,只是其方法對資料處理的邏輯和最後資料輸出的結果有些差別,可以通過這樣的思路實現嗎?1.思路一,通過修改抽象函式邏輯實現返回值不同abstract class parentsclass child extends parentsclass child extends parents ...

形參是父類的List,實參是子類的問題

需要對多個子類的集合進行同一種操作.本來可以寫多個方法就可以進行相應的多個方法的實現.現在想寫個簡單實用的方法,進行書寫.直接寫子父類的繼承,引數是父類,實參是子類是完全可以簡單實現的.但是現在的形參是父類的集合,實參是子類的集合,所以,在進行測試的時候,就多去想了想.所以用下面的來實現,感覺好多了...

子類繼承和呼叫父類的構造方法

1.如果子類沒有定義構造方法,則呼叫父類的無引數的構造方法,2.如果子類定義了構造方法,不論是無引數還是帶引數,在建立子類的物件的時候,首先執行父類無引數的構造方法,然後執行自己的構造方法。3.如果子類呼叫父類帶引數的構造方法,可以通過super 引數 呼叫所需要的父類的構造方法,切該語句做為子類構...