在這個部分,我將構建兩個類a
和b
,b
是a
的子類。
namespace csharppolymorphism
}class b : a
}class program
}}
執行結果為:
// i'm a, my value: a, got value: a
// i'm b, my value: b, got value: b
// i'm a, my value: a, got value: a
由此可見,通常繼承中,若使用子類來例項化父類物件,不論從類的內部還是外部訪問這個物件,這個物件都會使用父類的屬性和方法。
在這個部分,我將構建兩個類a
和b
,b
是a
的子類。a
中的方法定義為virtual
虛方法,b
中方法定義為new
新建方法。
namespace csharppolymorphism
}class b : a
}class program
}}
執行結果為:
// i'm a, my value: a, got value: a
// i'm b, my value: b, got value: b
// i'm a, my value: a, got value: a
與前面的例子結果一樣,當子類新建父類的虛方法時,若使用子類來例項化父類物件,不論從類的內部還是外部訪問這個物件,這個物件都會使用父類的屬性和方法。
在這個部分,我將構建兩個類a
和b
,b
是a
的子類。a
中的方法定義為virtual
虛方法,b
中方法定義為override
覆蓋方法。
namespace csharppolymorphism
}class b : a
}class program
}}
執行結果為:
// i'm a, my value: a, got value: a
// i'm b, my value: b, got value: b
// i'm b, my value: b, got value: a
在這個例子中,若使用子類來例項化父類物件,會呼叫子類的方法,而且在方法中獲取的屬性值是子類的,但是從外部直接訪問這個物件的屬性時,會使用父類物件的屬性值。 c 中繼承 多型
有了繼承,指向基類型別的指標或引用就可以被用來指向派生類型別的物件。然後就可以編寫程式來操縱這些指標或引用而不用考慮它們所指向的物件的實際型別。用乙個基類指標或引用來操縱多個派生型別的能力被稱為多型性。在c 中,多型性分為兩種,一種稱為編譯時多型,另一種為執行時多型 分別解釋下 1.編譯時多型,也就...
java中繼承和多型區別
嘿嘿,舉乙個比較容易理解的例子。主人公 李啟銘 李剛 經典語錄 我爸是李剛 例子開始 從李啟銘說的那句 我爸是李剛,是很有科學依據的,用程式設計的原理看,它符合繼承和多型的物件導向程式設計的這2大特性。先說一說,繼承,繼承就是子類可以繼承父類中的屬性和方法。包括私有的屬性和方法,只是由於私有的方法無...
c 中繼承與多型的理解
include using namespace std class base virtual base void show private int ma class derive public base derive virtual void show void test private int m...