真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#面向?qū)ο笕筇卣鞯暮唵蚊枋?創(chuàng)新互聯(lián)

C#面向?qū)ο蟮娜筇卣鳎?/p>

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、張家川回族自治網(wǎng)站維護(hù)、網(wǎng)站推廣。

封裝、繼承、多態(tài)

封裝:

保證對象自身數(shù)據(jù)的完整性和安全性

1.完整性:封裝就是把一些散的代碼包裝起來,讓他們共同去完成一個功能

 如:類、屬性、方法都是封裝的一種形式

2.安全性:如:我們在創(chuàng)建一個對象或調(diào)用一個方法時,只需要實例化一個類對象

 或調(diào)用一個方法名就可以完成我們需要的功能,而他內(nèi)部是怎么實現(xiàn)的,我們無法看到

繼承:

C#繼承的語法:

public class 子類:父類

{

//繼承使用 : 符號

}

概念:

建立類之間的關(guān)系(父類與子類),實現(xiàn)代碼復(fù)用,方便系統(tǒng)的擴(kuò)展

1.在繼承中分為父類(基類)和子類(派生類),也就是說當(dāng)子類繼承了父類以后,

 那么子類就擁有了父類中非private的成員(屬性、方法等)

例子:

學(xué)生類 有姓名、年齡...

員工類 有姓名、年齡...

那么如果這個時候,我們還要添加男人類、女人類等,

那是不是又要去寫姓名 和 年齡等這些屬性...這樣就會很麻煩

然而 學(xué)生類和員工類 他們都共有 姓名、年齡這兩個屬性

之所以,他們都有這兩個屬性是因為他們都屬于人類

所以這個時候我們就可以把他們共有的屬性等提取出來共同封裝

在一個Person類中,然后讓學(xué)生類和員工類都繼承Person類

這樣,學(xué)生類和員工類就都擁有了姓名和年齡這兩個屬性,

他們共有的屬性、方法就交給了Person類來管理,而他們只需要管理

自己特有的屬性、方法就可以了

這樣做的好處就是實現(xiàn)了代碼的復(fù)用,方便了系統(tǒng)的擴(kuò)展,

如:

以后我們還要再添加一個男人類或者女人類等,

就不用再去寫姓名、年齡等這些他們共有的成員了,只需要繼承Person類就可以了,

同樣,如果要添加一個他們共有的成員時,只需要在父類Person中添加就可以了

而不必去在他們每個類中都去添加新增的成員。

例子:

  public class Person //人類(這里他是父類)

  {

       public string Name{get;set;} //姓名

       public int Age{get;set;}     //年齡

  }

  public class Student:Person  //學(xué)生類 繼承 人類

  {

       //當(dāng)Student繼承了Person后,Student就自動擁有了Person類的非private成員

  }

  public class Employee:Person  //員工類 繼承 人類

  {

       //當(dāng)Employee繼承了Person后,Employee就自動擁有了Person類的非private成員

  }

  當(dāng)我們創(chuàng)建一個Student對象和Employee對象時:

       Student stu = new Student();

       Employee emp = new Employee();

  就可以使用:

       stu.Name="張三";

       stu.Age = 20;

       emp.Name = "李四";

       emp.Age = 30;

   這就是因為他們都繼承了Person類的原因

2.繼承要符合 "子類 is a 父類" 的關(guān)系,就是說 子類是一個父類

例子:同上面所說,要想實現(xiàn)繼承,就必須要符合 子類 is a 父類的關(guān)系,

 如:學(xué)生是一個人,學(xué)生 is a 人  員工是一個人 員工 is a 人

3.繼承的單根性,在C#中一個子類只能繼承一個父類(就像一個兒子不能擁有多個父親一樣)

4.子類可以替換父類并且出現(xiàn)在父類能夠出現(xiàn)的任何地方,且程序的行為不會發(fā)生變化,但是

 反過來,父類對象不能替換子類對象,這種特性被稱作 "里氏替換原則(Liskor Subsitution Principle)"

例子:

上面的例子創(chuàng)建對象也可以這樣寫:

Person p1 = new Student();

Person p2 = new Employee(); //里氏替換原則

而下面這樣寫就會報錯:

Student stu = new Person();

Employee emp = new Person();  //報錯

里氏替換原則中可以使用 is 和 as 操作符

is:用于去判斷一個類型是否是給定的類型,返回bool值

如:p1 is Student  //判斷p1是否是Student類型 true:是 false:不是

as:用于把一個類型轉(zhuǎn)換為另一個類型,類似于強(qiáng)制轉(zhuǎn)換,但是在強(qiáng)制轉(zhuǎn)換中,

如果給定的轉(zhuǎn)換類型不兼容(轉(zhuǎn)換失?。?,則會報錯,但是 as 轉(zhuǎn)換失敗的話,

不會報錯,會返回null

如:p1 as Student //把p1轉(zhuǎn)換為Student類型,如果失敗返回null

多態(tài):

概念:多態(tài)是指兩個或多個屬于不同類的對象,對于同一個消息(方法調(diào)用)

 作出不同響應(yīng)的方式。

實現(xiàn)多態(tài)的方式:

1.重載

2.虛方法

3.抽象方法(還有抽象屬性) → 抽象的成員沒有主體

4.泛型如:

定義虛方法語法:

訪問修飾符 virtual 返回類型 方法名()

{

//方法體

//注意:虛方法不能是private

}

定義抽象方法語法:

訪問修飾符 abstract 返回類型 方法名(); //沒有方法體、不能是privatte

定義抽象屬性語法:

public abstract 數(shù)據(jù)類型 屬性名

{

get;set;  //不能帶有字段

}

子類中重寫虛方法和抽象方法語法:

訪問修飾符 override 返回類型 方法名()

{

//方法體

//注意:子類中重寫父類的方法必須要:返回類型、方法名、參數(shù)都一樣

}

子類中重寫抽象屬性例子:

public override int Age

{

get{return age;}

set{age = value;}

}

虛方法 和 抽象方法 區(qū)別:

虛方法:

1.用virtual修飾

2.要有方法體

3.可以被子類override(重寫)

4.除了密封類、靜態(tài)類外都可以寫(虛方法)

抽象方法:

1.用abstract修飾

2.沒有方法體

3.必須被非抽象的子類override(重寫)

4.必須存在于抽象類中

抽象類:

1.有抽象方法(屬性)的類一定是抽象類

2.抽象類不僅可以包含抽象方法、抽象屬性,同樣也可以包含其他屬性、方法和構(gòu)造函數(shù)

3.抽象類不能被實例化

4.抽象類不能是靜態(tài)或者密封的,因為靜態(tài)類和密封類都不能被繼承

例子:

public abstract class Person //抽象類 Person 為父類

{

//定義了一個抽象方法

public abstract string Test();

}

public class Employee:Person  //繼承了Person類

{

//由于Employee類不是抽象類,所以必須重寫override父類Person的Test()方法

public override string Test()

{

//方法體

return ""; //override 必須要方法名、參數(shù)、返回類型都相同

}

}

記住:抽象類不能被實例化

Person p = new Person(); //這樣寫會報錯

但是,可以這樣寫:

Person p = new Employee(); //這樣寫是正確的

那么調(diào)用p.Test() 方法 會執(zhí)行Employee里面的Test()方法,

也就是說,父類的方法一旦被子類重寫override以后,那么創(chuàng)建

的父類對象就會去調(diào)用它實際類型對象的方法(就是被重寫后的方法)

PS:抽象成員必須被非抽象子類override重寫

當(dāng)然,如果是虛方法的話,在子類中沒有被重寫,那么就會調(diào)用父類的方法

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


網(wǎng)頁題目:C#面向?qū)ο笕筇卣鞯暮唵蚊枋?創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/csshcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部