標籤:
1、繼承是可傳遞的。如果C從B中派生,B又從A中派生,那麼C不僅繼承了B中聲明的成員,同樣也繼承了A中的成員。Object 類作為所有類的基類。
2、衍生類別應當是對基類的擴充。衍生類別可以添加新的成員,但不能除去已經繼承的成員的定義。
3、建構函式和解構函式不能被繼承。除此以外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定衍生類別能否訪問它們。
4、衍生類別如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這並不因為這衍生類別刪除了這些成員,只是不能再訪問這些成員。
5、類可以定義虛方法、虛屬性以及虛索引指標,它的衍生類別能夠重載這些成員,從而實作類別可以展示出多態性。
6、衍生類別只能從一個類中繼承,可以通過接呂實現多重繼承。
下面的代碼是一個子類繼承父類的例子:
using System ;
public class ParentClass
{
public ParentClass( )
{ Console.WriteLine("父類建構函式。"); }
public void print( )
{ Console.WriteLine("I‘m a Parent Class。") ; }
}
public class ChildClass : ParentClass
{
public ChildClass( )
{ Console.WriteLine("子類建構函式。") ; }
public static void Main( ) {
ChildClass child = new ChildClass( ) ;
child.print( ) ;
}
}
程式運行輸出:
父類建構函式。子類建構函式。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#繼承機制 C#中的繼承符合下列規則