国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

深入剖析C#繼承機制2

2024-07-21 02:18:14
字體:
供稿:網(wǎng)友

二、c#中的繼承符合下列規(guī)則:

  1、繼承是可傳遞的。如果c從b中派生,b又從a中派生,那么c不僅繼承了b中聲明的成員,同樣也繼承了a中的成員。object 類作為所有類的基類。

  2、派生類應當是對基類的擴展。派生類可以添加新的成員,但不能除去已經(jīng)繼承的成員的定義。

  3、構(gòu)造函數(shù)和析構(gòu)函數(shù)不能被繼承。除此以外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。

  4、派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這并不因為這派生類刪除了這些成員,只是不能再訪問這些成員。

  5、類可以定義虛方法、虛屬性以及虛索引指示器,它的派生類能夠重載這些成員,從而實現(xiàn)類可以展示出多態(tài)性。

  6、派生類只能從一個類中繼承,可以通過接呂實現(xiàn)多重繼承。

  下面的代碼是一個子類繼承父類的例子:


using system ;
public class parentclass
{
public parentclass( )
{ console.writeline("父類構(gòu)造函數(shù)。"); }
public void print( )
{ console.writeline("i'm a parent class。") ; }
}
public class childclass : parentclass
{
public childclass( )
{ console.writeline("子類構(gòu)造函數(shù)。") ; }
public static void main( ) {
childclass child = new childclass( ) ;
child.print( ) ;
}
}

  程序運行輸出:

  父類構(gòu)造函數(shù)。子類構(gòu)造函數(shù)。i'm a parent class。

  上面的一個類名為parentclass, main函數(shù)中用到的類名為childclass。要做的是創(chuàng)建一個使用父類parentclass現(xiàn)有代碼的子類childclass。

  1.首先必須說明parentclass是childclass的基類。

  這是通過在childclass類中作出如下說明來完成的:"public class childclass : parentclass"。在派生類標識符后面,用分號":" 來表明后面的標識符是基類。c#僅支持單一繼承。因此,你只能指定一個基類。

  2.childclass的功能幾乎等同于parentclass。

  因此,也可以說childclass "就是" parentclass。在childclass 的main( )方法中,調(diào)用print( ) 方法的結(jié)果,就驗證這一點。該子類并沒有自己的print( )方法,它使用了parentclass中的 print( )方法。在輸出結(jié)果中的第三行可以得到驗證。

  3.基類在派生類初始化之前自動進行初始化。parentclass 類的構(gòu)造函數(shù)在childclass的構(gòu)造函數(shù)之前執(zhí)行。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 麻城市| 全州县| 黔西县| 通道| 西贡区| 襄城县| 连江县| 冷水江市| 苍溪县| 晋城| 五家渠市| 白水县| 晋宁县| 长治县| 葵青区| 兴城市| 石阡县| 乌恰县| 资讯 | 西华县| 依安县| 通化县| 阳城县| 扎赉特旗| 彭山县| 英吉沙县| 南丰县| 高安市| 石屏县| 綦江县| 关岭| 城步| 温泉县| 日土县| 白朗县| 松溪县| 铁岭县| 荃湾区| 通州市| 翁源县| 浮山县|