<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>

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

    上傳人:fgh****35 文檔編號(hào):248210885 上傳時(shí)間:2024-10-22 格式:PPT 頁(yè)數(shù):48 大?。?75.50KB
    收藏 版權(quán)申訴 舉報(bào) 下載
    使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài)_第1頁(yè)
    第1頁(yè) / 共48頁(yè)
    使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài)_第2頁(yè)
    第2頁(yè) / 共48頁(yè)
    使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài)_第3頁(yè)
    第3頁(yè) / 共48頁(yè)

    下載文檔到電腦,查找使用更方便

    15 積分

    下載資源

    還剩頁(yè)未讀,繼續(xù)閱讀

    資源描述:

    《使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《使用C#進(jìn)行面向?qū)ο缶幊?第八章 繼承和多態(tài)(48頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

    1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,第八章 繼承和多態(tài),1,本章內(nèi)容,繼承,引用變量類(lèi)型和所指對(duì)象類(lèi)型不一致的情況,多態(tài),抽象類(lèi)和抽象方法,2,8,.1 繼承,在,C#,編程語(yǔ)言中,通過(guò)繼承可利用已有的類(lèi),并擴(kuò)展它的屬性和方法。這個(gè)已有的類(lèi)可以是,.net,類(lèi)庫(kù)中的類(lèi)的或其他程序員編寫(xiě)的。,通過(guò)繼承,能夠復(fù)用原有代碼。,3,什么是繼承,如何定義繼承,子類(lèi)對(duì)象的創(chuàng)建過(guò)程,父類(lèi)的,private,成員的繼承問(wèn)題,靜態(tài)成員的繼承問(wèn)題,成員變量的隱藏,方法的隱藏,base,關(guān)鍵字,有關(guān)繼承的知識(shí)點(diǎn),4,考慮如下問(wèn)題,:,定義動(dòng)物,人,魚(yú)這三個(gè)類(lèi),存

    2、在幾個(gè)問(wèn)題:,(1)沒(méi)有描述這幾個(gè)類(lèi)之間的關(guān)系。,(2)定義其他類(lèi)(如貓,狗)時(shí),除了定義該類(lèi)的特殊屬性和行為外,還需要定義動(dòng)物的一般屬性和行為。,(3)如果動(dòng)物的一般屬性和行為需要修改,則跟該類(lèi)有關(guān)的所有類(lèi)的定義都需要修改。,動(dòng)物的屬性,動(dòng)物的行為,動(dòng)物的屬性,動(dòng),物的行為,人的特殊屬性,人的特殊行為,動(dòng),物的屬性,動(dòng),物的行為,魚(yú)的特殊屬性,魚(yú)的特殊行為,動(dòng)物,人,魚(yú),(1)什么是繼承,5,為解決這個(gè)問(wèn)題,引入,類(lèi)的繼承,這個(gè)概念。,我們使得,人類(lèi),和,魚(yú)類(lèi),繼承,動(dòng)物類(lèi),。,動(dòng)物的屬性,動(dòng)物的行為,自動(dòng)具有動(dòng)物類(lèi),的屬性和行為,人的特殊屬性,人的特殊行為,自動(dòng)具有動(dòng)物類(lèi),的屬性和行為,魚(yú)

    3、的特殊屬性,魚(yú)的特殊行為,動(dòng)物,(基類(lèi)/父類(lèi)/超類(lèi)),人,(派生類(lèi)/子類(lèi)),魚(yú),(派生類(lèi)/子類(lèi)),繼承,繼承,6,基類(lèi)和派生類(lèi)的概念是相對(duì)的,一個(gè)類(lèi)既可以是基類(lèi),也可以是派生類(lèi)。,汽車(chē),小轎車(chē),卡車(chē),客車(chē),繼承,繼承,繼承,輪船,交通工具,繼承,繼承,7,繼承的語(yǔ)法形式:,class,子類(lèi)的名稱(chēng),:,父類(lèi)名稱(chēng),子類(lèi)特有的成員變量和成員函數(shù),(2)如何定義繼承,class Human:Living,public void say(),System.Console.Write(hello!);,class Animal,public,int,age;,public void shout(),8,分

    4、析一所大學(xué)中的人的類(lèi)層次結(jié)構(gòu),學(xué)生,本科生,研究生,教師,繼承,繼承,繼承,教職員工,人,繼承,繼承,職工,繼承,9,C#,中所有的類(lèi)(包括我們自己定義的類(lèi))都是直接或間接繼承自,System.Object,類(lèi)。,10,注意,:,(1)子類(lèi)繼承所有的父類(lèi)成員,(2)子類(lèi)中能夠直接訪(fǎng)問(wèn)繼承自父類(lèi)的,public、protected,成員,(3)子類(lèi)中不能夠直接訪(fǎng)問(wèn)繼承自父類(lèi)的,private,成員,11,繼承的威力,你已經(jīng)實(shí)現(xiàn)了一個(gè)基本的計(jì)算器程序,.,現(xiàn)在如果要你實(shí)現(xiàn)一個(gè)類(lèi)似,windows,自帶計(jì)算器那樣既有標(biāo)準(zhǔn)版功能又有科學(xué)版功能的計(jì)算器,你該怎么辦,?,12,(3)子類(lèi)對(duì)象的 創(chuàng)建過(guò)程,

    5、子類(lèi)對(duì)象可看作內(nèi)部包含著一個(gè)父類(lèi)的對(duì)象,子類(lèi)對(duì)象的創(chuàng)建過(guò)程,(1)按照定義順序初始化子類(lèi)對(duì)象新定義的成員變量,(2)創(chuàng)建子類(lèi)對(duì)象中包含的父類(lèi)對(duì)象,(3)調(diào)用子類(lèi)的構(gòu)造函數(shù),class X,class Y:X,public,int,data;,X,類(lèi)對(duì)象,Y,類(lèi)對(duì)象,data,13,習(xí)題:,下列程序的輸出結(jié)果是什么?,class,A,public A(),System.Console.WriteLine(A,();,class,B,public,B()System.Console.WriteLine(B,();,class,Point,public,Point()System.Console.W

    6、riteLine(Point,();,class,MapPoint,:Point,public MapPoint(),System.Console.WriteLine(MapPoint,();,class,ColorPoint,:MapPoint,public A a=new A();,public B b;,public,ColorPoint,(),System.Console.WriteLine(ColorPoint,();,public static void Main(),new,ColorPoint,();,Point,MapPoint,ColorPoint,14,子類(lèi)中不能直接訪(fǎng)問(wèn)

    7、繼承自父類(lèi)的,private,成員,下列程序編譯出錯(cuò),public class A,private,int,age=10;,public class B:A,public void fun(),age=20;,age,A,類(lèi),的對(duì)象,age,Test,類(lèi),的對(duì)象,繼承自,A,類(lèi),(4)父類(lèi)的,private,成員的繼承問(wèn)題,15,在子類(lèi)中如何訪(fǎng)問(wèn)繼承自父類(lèi)的,private,成員?,可以通過(guò)繼承自父類(lèi)的,public,或,protected,成員來(lái)訪(fǎng)問(wèn)繼承自父類(lèi)的,private,成員,public class A,private,int,age=10;,public,int,GetAge,(

    8、),return age;,public class B:A,public void Fun(),Console.WriteLine(GetAge,();,public class Test,public static void Main(string,args,),B b1=new B();,b1.Fun();,16,某類(lèi)的靜態(tài)成員為該類(lèi)及該類(lèi)的所有子類(lèi)所共有,public class A,public static,int,data=10;,public class B:A,(5)靜態(tài)成員的繼承問(wèn)題,17,(6)成員變量的隱藏,如果子類(lèi)中新定義的成員變量與父類(lèi)中的某個(gè)成員變量同名,那么對(duì)于

    9、這個(gè)子類(lèi)而言父類(lèi)中的同名成員變量將被隱藏。,class Living,public,int,age=10;,class Human:Living,new,public,int,age=20;,age,Living,類(lèi),的對(duì)象,age,Human,類(lèi),的對(duì)象,age,繼承自,Living,類(lèi),Human,類(lèi),新定義的,成員變量,18,子類(lèi)通過(guò)繼承自父類(lèi)的方法能夠訪(fǎng)問(wèn)繼承自父類(lèi)的被隱藏的成員變量,class Living,public,int,age=10;,public,int,getage,(),return age;,class Human:Living,public,int,age=20;

    10、,19,靜態(tài)成員變量的隱藏,class Living,public static,int,age;,class Human:Living,new,public static,int,age;,這兩個(gè)靜態(tài)成員變量相互獨(dú)立,20,(7)方法的隱藏,如果子類(lèi)中新定義的方法的名稱(chēng)、返回值類(lèi)型、參數(shù)列表與父類(lèi)中的某個(gè)方法完全相同,則稱(chēng)子類(lèi)中的方法隱藏了父類(lèi)中的方法。(注意和重載的 區(qū)別),class Living,public void shout(),System.Console.Write(,動(dòng)物叫!);,class Human:Living,new public void shout(),Syst

    11、em.Console.Write(,人叫!);,21,class A,public void,PrintNumber(int,a),System.Console.WriteLine(+a,);,class B:A,public void,PrintNumber(int,a,int,b),System.,Console.WriteLine(a,);,public static void Main(),B b=new B();,b.PrintNumber(100);,習(xí)題:分析下列程序輸出結(jié)果,結(jié)果:101,22,class Point,public,int,x=0;,public,Point(i

    12、nt,x),this.x=x;,class MapPoint:Point,public MapPoint(),System.Console.WriteLine(MapPoint,);,public static void Main(),MapPoint m1=new MapPoint();,例:,下列程序能否正常運(yùn)行?,23,class Point,public,int,x=0;,public,Point(int,x),this.x=x;,class MapPoint:Point,public,MapPoint(int,x),System.Console.WriteLine(MapPoint,

    13、);,public static void Main(),MapPoint m1=new MapPoint(10);,例:,下列程序能否正常運(yùn)行?,24,(8)base,關(guān)鍵字,通過(guò),base,關(guān)鍵字在子類(lèi)中訪(fǎng)問(wèn)被隱藏的父類(lèi)成員變量。,human h1=new human();,h1.changefatherdate();,System.Console.WriteLine(h1.age);,System.Console.WriteLine(h1.getfatherdate();,class living,public,int,age;,class human:living,new,public

    14、,int,age;,public void,changefatherdate,(),base.age=10;,public,int,getfatherdate,(),return base.age;,25,注意:,在靜態(tài)方法中不能使用,base。,因?yàn)橥ㄟ^(guò),base,可以在子類(lèi)中直接訪(fǎng)問(wèn)被隱藏的父類(lèi)成員,而靜態(tài)成員函數(shù)可以被所在類(lèi)直接調(diào)用,并不需要?jiǎng)?chuàng)建一個(gè)對(duì)象。這意味著不用創(chuàng)建對(duì)象也可以訪(fǎng)問(wèn)類(lèi)的成員,這是不允許的。,26,在子類(lèi)中可以通過(guò),base,關(guān)鍵字,調(diào)用父類(lèi)的構(gòu)造函數(shù)以初始化子類(lèi)對(duì)象中繼承自父類(lèi)的成員變量。,class Point,public,int,x=0;,public,Poin

    15、t(int,x),this.x=x;,System.Console.WriteLine(Point,);,class MapPoint:Point,public MapPoint(),:base(10),System.Console.WriteLine(MapPoint,);,public static void Main(),MapPoint m1=new MapPoint();,System.Console.WriteLine(m1.x);,27,8,.2 引用變量類(lèi)型與所指對(duì)象類(lèi)型不一致,class Living,public,int,age;,public void Eat(),Sys

    16、tem.Console.WriteLine,(,吃);,class Human:Living,public,int,money;,public void Read(),System.Console.WriteLine,(,看書(shū));,28,(,1,)父類(lèi)引用指向子類(lèi)對(duì)象。,Living l1=new Human();,當(dāng)父類(lèi)引用指向子類(lèi)對(duì)象時(shí),父類(lèi)引用實(shí)際指向的是子類(lèi)對(duì)象中隱含的父類(lèi)對(duì)象。因而父類(lèi)引用只能訪(fǎng)問(wèn)子類(lèi)對(duì)象中繼承自父類(lèi)的成員。,l1,new,產(chǎn)生的,Human,對(duì)象,money,Read(),隱含的,Living,類(lèi)對(duì)象,age,eat(),29,l1.Eat();,/,正確,System.Console.WriteLine(l1.age);,/,正確,l1.Read();,/,錯(cuò)誤,(Human)l1).Read();,/,正確,對(duì),l1,進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換可使其調(diào)用,Read(),子類(lèi)引用可以賦給父類(lèi)引用,Human h1=new Human();Living l1=h1;,/,正確,l1,new,產(chǎn)生的,Human,對(duì)象,money,Read(),隱含的,Living,類(lèi)對(duì)

    展開(kāi)閱讀全文
    溫馨提示:
    1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
    2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
    3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
    4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
    5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
    6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
    7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

    copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

    備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


    本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>