多態與重載兩者之間的區別:
重載:是指 允許存在多個同名的函數,隻是這些函數的參數不同。重載的實現是:編譯器根據不同的參數列表,對同名的函數的名稱做修飾。對於編譯器而言,這些同名函數就成了不同的函數。它們的調用地址在編譯期就綁定了。
多態:是指子類重新定義父類的虛函數。當子類重新定義了父類的虛函數後,父類根據賦給它的不同子類,動態調用屬於子類的該函數,這樣的函數調用在編譯期間是無法確定的。
接口與抽象類:
兩者相似處:
1、兩者都包含可以由子類繼承的抽象成員;
2、兩者都 不能直接實例化。
兩者的區別:
1、抽象類除擁有抽象成員之外,還可有擁有非抽象成員;而接口所有的成員都是抽象的。
2、抽象成員可以是私有的,而接口的成員一般都是公有的;
3、接口中不能含有構造函數、析構函數、靜態成員和常量;
4、C#隻支持單繼承,即子類隻能繼承一個父類。而一個子類卻能夠繼承多個接口。