程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 深入剖析C#繼承機制2

深入剖析C#繼承機制2

編輯:.NET實例教程
二、C#中的繼承符合下列規則: 

  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的構造函數之前執行。 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved