使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt

使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt

ID:51588456

大小:175.50 KB

頁數(shù):48頁

時(shí)間:2020-03-24

使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt_第1頁
使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt_第2頁
使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt_第3頁
使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt_第4頁
使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt_第5頁
資源描述:

《使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、第八章繼承和多態(tài)1本章內(nèi)容繼承引用變量類型和所指對(duì)象類型不一致的情況多態(tài)抽象類和抽象方法28.1繼承在C#編程語言中,通過繼承可利用已有的類,并擴(kuò)展它的屬性和方法。這個(gè)已有的類可以是.net類庫中的類的或其他程序員編寫的。通過繼承,能夠復(fù)用原有代碼。3什么是繼承如何定義繼承子類對(duì)象的創(chuàng)建過程父類的private成員的繼承問題靜態(tài)成員的繼承問題成員變量的隱藏方法的隱藏base關(guān)鍵字有關(guān)繼承的知識(shí)點(diǎn)4考慮如下問題:定義動(dòng)物,人,魚這三個(gè)類存在幾個(gè)問題:(1)沒有描述這幾個(gè)類之間的關(guān)系。(2)定義其他類(如貓,狗)時(shí),除了定義該類的特殊屬性和行為外,還需要定義動(dòng)物的一般屬性和行為。

2、(3)如果動(dòng)物的一般屬性和行為需要修改,則跟該類有關(guān)的所有類的定義都需要修改。動(dòng)物的屬性動(dòng)物的行為動(dòng)物的屬性動(dòng)物的行為人的特殊屬性人的特殊行為動(dòng)物的屬性動(dòng)物的行為魚的特殊屬性魚的特殊行為動(dòng)物人魚(1)什么是繼承5為解決這個(gè)問題,引入類的繼承這個(gè)概念。我們使得人類和魚類繼承動(dòng)物類。動(dòng)物的屬性動(dòng)物的行為自動(dòng)具有動(dòng)物類的屬性和行為人的特殊屬性人的特殊行為自動(dòng)具有動(dòng)物類的屬性和行為魚的特殊屬性魚的特殊行為動(dòng)物(基類/父類/超類)人(派生類/子類)魚(派生類/子類)繼承繼承6基類和派生類的概念是相對(duì)的,一個(gè)類既可以是基類,也可以是派生類。汽車小轎車卡車客車?yán)^承繼承繼承輪船交通工具繼承繼

3、承7繼承的語法形式:class子類的名稱:父類名稱{子類特有的成員變量和成員函數(shù)}(2)如何定義繼承classHuman:Living{publicvoidsay(){System.Console.Write("hello!");}}classAnimal{publicintage;publicvoidshout(){}}8分析一所大學(xué)中的人的類層次結(jié)構(gòu)學(xué)生本科生研究生教師繼承繼承繼承教職員工人繼承繼承職工繼承9C#中所有的類(包括我們自己定義的類)都是直接或間接繼承自System.Object類。10注意:(1)子類繼承所有的父類成員(2)子類中能夠直接訪問繼承自父類的pu

4、blic、protected成員(3)子類中不能夠直接訪問繼承自父類的private成員11繼承的威力你已經(jīng)實(shí)現(xiàn)了一個(gè)基本的計(jì)算器程序.現(xiàn)在如果要你實(shí)現(xiàn)一個(gè)類似windows自帶計(jì)算器那樣既有標(biāo)準(zhǔn)版功能又有科學(xué)版功能的計(jì)算器,你該怎么辦?12(3)子類對(duì)象的創(chuàng)建過程子類對(duì)象可看作內(nèi)部包含著一個(gè)父類的對(duì)象子類對(duì)象的創(chuàng)建過程(1)按照定義順序初始化子類對(duì)象新定義的成員變量(2)創(chuàng)建子類對(duì)象中包含的父類對(duì)象(3)調(diào)用子類的構(gòu)造函數(shù)classX{}classY:X{publicintdata;}X類對(duì)象Y類對(duì)象data13習(xí)題:下列程序的輸出結(jié)果是什么?classA{publicA(

5、){System.Console.WriteLine("A()");}}classB{publicB(){System.Console.WriteLine("B()");}}classPoint{publicPoint(){System.Console.WriteLine("Point()");}}classMapPoint:Point{publicMapPoint(){System.Console.WriteLine("MapPoint()");}}classColorPoint:MapPoint{publicAa=newA();publicBb;publicColorPo

6、int(){System.Console.WriteLine("ColorPoint()");}publicstaticvoidMain(){newColorPoint();}}PointMapPointColorPoint14子類中不能直接訪問繼承自父類的private成員,下列程序編譯出錯(cuò)publicclassA{privateintage=10;}publicclassB:A{publicvoidfun(){age=20;}}ageA類的對(duì)象ageTest類的對(duì)象繼承自A類(4)父類的private成員的繼承問題15在子類中如何訪問繼承自父類的private成員?可以通

7、過繼承自父類的public或protected成員來訪問繼承自父類的private成員publicclassA{privateintage=10;publicintGetAge(){returnage;}}publicclassB:A{publicvoidFun(){Console.WriteLine(GetAge());}}publicclassTest{publicstaticvoidMain(string[]args){Bb1=newB();b1.Fun();}}16某類的靜態(tài)成員為該類及該類的所

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。