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

首頁 > 開發 > 綜合 > 正文

深入剖析C#繼承機制1

2024-07-21 02:18:14
字體:
來源:轉載
供稿:網友
一. 繼承基礎知識

  為了提高軟件模塊的可復用性和可擴充性,以便提高軟件的開發效率,我們總是希望能夠利用前人或自己以前的開發成果,同時又希望在自己的開發過程中能夠有足夠的靈活性,不拘泥于復用的模塊。c#這種完全面向對象的程序設計語言提供了兩個重要的特性--繼承性inheritance 和多態性polymorphism。

  繼承是面向對象程序設計的主要特征之一,它可以讓您重用代碼,可以節省程序設計的時間。繼承就是在類之間建立一種相交關系,使得新定義的派生類的實例可以繼承已有的基類的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起類的新層次。

  現實世界中的許多實體之間不是相互孤立的,它們往往具有共同的特征也存在內在的差別。人們可以采用層次結構來描述這些實體之間的相似之處和不同之處。


圖1 類圖

  上圖反映了交通工具類的派生關系。最高層的實體往往具有最一般最普遍的特征,越下層的事物越具體,并且下層包含了上層的特征。它們之間的關系是基類與派生類之間的關系。

  為了用軟件語言對現實世界中的層次結構進行模型化,面向對象的程序設計技術引入了繼承的概念。一個類從另一個類派生出來時,派生類從基類那里繼承特性。派生類也可以作為其它類的基類。從一個基類派生出來的多層類形成了類的層次結構。

  注意:c#中,派生類只能從一個類中繼承。這是因為,在c++中,人們在大多數情況下不需要一個從多個類中派生的類。從多個基類中派生一個類這往往會帶來許多問題,從而抵消了這種靈活性帶來的優勢。
c#中,派生類從它的直接基類中繼承成員:方法、域、屬性、事件、索引指示器。除了構造函數和析構函數,派生類隱式地繼承了直接基類的所有成員。看下面示例:
using system ;
class vehicle //定義交通工具(汽車)類
{
protected int wheels ; //公有成員:輪子個數
protected float weight ; //保護成員:重量
public vehicle( ){;}
public vehicle(int w,float g){
wheels = w ;
weight = g ;
}
public void speak( ){
console.writeline( "交通工具的輪子個數是可以變化的! " ) ;
}
} ;
class car:vehicle //定義轎車類:從汽車類中繼承
{
int passengers ; //私有成員:乘客數
public car(int w , float g , int p) : base(w, g)
{
wheels = w ;
weight = g ;
passengers=p ;
}
}

  vehicle 作為基類,體現了"汽車"這個實體具有的公共性質:汽車都有輪子和重量。car 類繼承了vehicle 的這些性質,并且添加了自身的特性:可以搭載乘客。



,歡迎訪問網頁設計愛好者web開發。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枝江市| 大冶市| 涞水县| 苗栗市| 平阳县| 闻喜县| 辽源市| 区。| 克山县| 江华| 根河市| 保定市| 霍州市| 靖西县| 淄博市| 灵丘县| 石楼县| 桂阳县| 科技| 定安县| 清徐县| 阳原县| 青州市| 漳州市| 金塔县| 湄潭县| 大厂| 柳州市| 酒泉市| 高要市| 洪湖市| 太康县| 沙坪坝区| 和顺县| 微博| 利津县| 民权县| 科技| 庄浪县| 达州市| 庄浪县|