物件繼承時過載方法的覆蓋問題

2021-05-23 08:38:05 字數 571 閱讀 5961

例子1:

class base

{public:

void test(int) { cout<<"base's test(int)"{public:

void test(int) { cout<<"derive's test(int)"derive  d;

d.test(1.0);        //output:  derive's test(int)

在子類中,我們只是重寫了方法test(int)。呼叫子類test方法時,引數是double型別,實際上經過型別隱式轉換,呼叫了子類的test(int)。父類的test(double)在子類中已經隱藏起來。

例子2:

class base

{public:

void test(int) { cout<<"base's test(int)"{public:

void test(int) { cout<<"derive's test(int)"derive  d;

d.test("hello test!");        //compile error!

這個例子更好的說明了上述觀點。

C 的過載 覆蓋 隱藏 繼承

函式過載 函式的繼承 這個不多說 子類繼承父類的公有變數 函式的覆蓋 也是重寫 關於子類修改了父類的成員函式 所以呼叫跟父類同名的成員函式 顯示的是子類的修改的函式的輸出方式 函式的隱藏 在父類和子類都有同名函式時,可以是顯示父類的函式輸出方式 也可以是顯示子類的輸出方式 但兩者會顯示的原因不同,如...

物件導向 繼承的覆蓋

繼承的覆蓋也成為方法的重寫 class testvehicles class vehicles public void showinfo class care extends vehicles class truck extends vehicles 1 方法覆蓋 子類中定義和父類相同的方法。方法過...

Java中的繼承 過載 覆蓋

第一節 繼承的概念 1.1.1 為什麼使用繼承 使乙個類的資料成員和成員方法可以被另乙個類 派生類或子類 重用。繼承的特性實現了真正意義上的 復用,子類可以從父類繼承所有非private的資料成員和成員方法,以體現其共性。在子類中也可以新定義一些自己特有的資料成員和成員方法,以體現其個性。1.1.2...