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

2021-07-16 17:45:02 字數 691 閱讀 8756

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

1)繼承是子類獲得父類的成員。

2)重寫是繼承後重新實現父類的方法。 

3)過載是在乙個類裡一系列引數不同名字相同的方法。 

4)多型則是為了避免在父類裡大量過載引起**臃腫且難於維護。

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

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

class ******** extends shape

}class rectangle extends shape

}public class shape

public int getsides()

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

public int getsides(rectangle rec)

public static void main(string args)

}紅色是過載

,綠色是重寫

,藍色是繼承

,粉紅是多型

注意********類的方法是重寫,而rectangle類的方法是過載。

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

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

過載,繼承,重寫和多型的區別 繼承是子類獲得父類的成員,重寫是繼承後重新實現父類的方法。過載是在乙個類裡一系列引數不同名字相同的方法。多型則是為了避免在父類裡大量過載引起 臃腫且難於維護。網上看到乙個有趣的說法是 繼承是子類使用父類的方法,而多型則是父類使用子類的方法。下面的例子包含了這四種實現 c...

重寫 多型和過載

重寫 重寫是指重寫基類的方法。注意 基類的方法一定要使用virtual修飾符,派生類的方法一定要使用override修飾符。例 public class a public class b a static void main string args 結果為 子類。多型 同一種操作作用於不同的物件,可...

C 過載重寫和多型區別

1.過載和重寫的區別 過載overload 在同乙個類中,函式名相同,引數列表不同,編譯器會根據這些函式的不同引數列表,將同名的函式名稱做修飾,從而生成一些不同名稱的預處理函式,未體現多型。重寫override 也叫覆蓋,子類重新定義父類中有相同名稱相同引數的虛函式,主要是在繼承關係 現的,被重寫的...