国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 长治县| 工布江达县| 开封市| 汶川县| 贵州省| 南通市| 山阴县| 岳普湖县| 新兴县| 蕉岭县| 游戏| 木兰县| 镇平县| 辛集市| 衡阳县| 噶尔县| 千阳县| 当雄县| 湄潭县| 临清市| 临泉县| 恩施市| 二连浩特市| 怀仁县| 普宁市| 凤阳县| 靖安县| 东辽县| 宜城市| 遂平县| 钦州市| 曲靖市| 台东市| 静乐县| 阿荣旗| 兴山县| 沁源县| 利川市| 沙雅县| 石城县| 黔西|