1、繼承是可傳遞的。如果c從b中派生,b又從a中派生,那麼c不僅繼承了b中宣告的成員,同樣也繼承了a中的成員。object 類作為所有類的基類。
2、派生類應當是對基類的擴充套件。派生類可以新增新的成員,但不能除去已經繼承的成員的定義。
3、建構函式和析構函式不能被繼承。除此以外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。
4、派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這並不因為這派生類刪除了這些成員,只是不能再訪問這些成員。
5、類可以定義虛方法、虛屬性以及虛索引指示器,它的派生類能夠過載這些成員,從而實現類可以展示出多型性。
6、派生類只能從乙個類中繼承,可以通過接呂實現多重繼承。
下面的**是乙個子類繼承父類的例子:
using system ;
public class parentclass
public void print( )
}public class childclass : parentclass
public static void main( )
} 程式執行輸出:
父類建構函式。子類建構函式。i'm a parent class。
上面的乙個類名為parentclass, main函式中用到的類名為childclass。要做的是建立乙個使用父類parentclass現有**的子類childclass。
1.首先必須說明parentclass是childclass的基類。
這是通過在childclass類中作出如下說明來完成的:"public class childclass : parentclass"。在派生類識別符號後面,用分號":" 來表明後面的識別符號是基類。c#僅支援單一繼承。因此,你只能指定乙個基類。
2.childclass的功能幾乎等同於parentclass。
因此,也可以說childclass "就是" parentclass。在childclass 的main( )方法中,呼叫print( ) 方法的結果,就驗證這一點。該子類並沒有自己的print( )方法,它使用了parentclass中的 print( )方法。在輸出結果中的第三行可以得到驗證。
3.基類在派生類初始化之前自動進行初始化。parentclass 類的建構函式在childclass的建構函式之前執行。
c 多繼承機制
由於兩義性問題的根源在公共基類,因此需要從公共基類著手,將公共基類說明為虛基類,就可以避免二義性。如下 注意 一 father 和mother在繼承時將human說明為虛基類,也就是只為子類son生成乙個speak函式,speak函式是惟一的,避免了二義性。二 派生類指標不能直接指向基類物件。三 派...
C 學習之路 繼承機制
1 繼承 c 的訪問控制方式有三種 public 公有繼承 protected 保護繼承 和private 私有繼承 c 派生類繼承了基類的所有資料型別和除了建構函式和析構函式的所有成員函式。基類的public 基類的protected 基類的private 公有繼承 public protecte...
C 中的繼承
一 繼承 什麼是繼承 繼承是允許重用現有類去建立新類的過程。分類的原則是乙個類派生出來的子類具有這個類的所有非私有的屬性。1 繼承c 中的類 c 不支援多重繼承,c 類始終繼承自乙個基類 如果未在宣告中指定乙個基類,則繼承自 system.object 派生類繼承基類的語法如下 using syst...