《C#語(yǔ)言程序設(shè)計(jì)(第3版)》教學(xué)課件-第三部分_第1頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)(第3版)》教學(xué)課件-第三部分_第2頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)(第3版)》教學(xué)課件-第三部分_第3頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)(第3版)》教學(xué)課件-第三部分_第4頁(yè)
《C#語(yǔ)言程序設(shè)計(jì)(第3版)》教學(xué)課件-第三部分_第5頁(yè)
已閱讀5頁(yè),還剩107頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C#語(yǔ)言程序設(shè)計(jì)鄭宇軍《C#語(yǔ)言程序設(shè)計(jì)(第3版)》清華大學(xué)出版社面向?qū)ο蟮腃#第6章深入理解類第6章深入理解類面向?qū)ο蟮姆椒▽W(xué)構(gòu)造函數(shù)和析構(gòu)函數(shù)屬性索引函數(shù)事件操作符重載

this關(guān)鍵字

幾個(gè)常用類面向?qū)ο蟮姆椒▽W(xué)面向過(guò)程的方法功能與數(shù)據(jù)別離自頂向下的分析基于模塊的設(shè)計(jì)面向?qū)ο蟮姆椒〝?shù)據(jù)+操作對(duì)象對(duì)象+類+繼承+通信面向?qū)ο蟮姆椒▽W(xué)對(duì)象類〔抽象化〕Shape面向?qū)ο蟮姆椒▽W(xué)對(duì)象類〔抽象化〕類對(duì)象〔具體化〕王艷2年級(jí)3班劉強(qiáng)5年級(jí)1班范小飛2年級(jí)1班Student面向?qū)ο蟮姆椒▽W(xué)繼承ShapeTriangleRectangleEllipseSquarePolygonCircle面向?qū)ο蟮姆椒▽W(xué)面向?qū)ο蟮慕?duì)象模型/功能模型/動(dòng)態(tài)模型面向?qū)ο蟮男枨蠓治稣撚蚍治?應(yīng)用分析面向?qū)ο蟮脑O(shè)計(jì)問(wèn)題論域/用戶界面/任務(wù)管理/數(shù)據(jù)管理相關(guān)參考書(shū)類的成員數(shù)據(jù)成員字段方法成員普通方法構(gòu)造函數(shù)和析構(gòu)函數(shù)屬性索引函數(shù)事件操作符構(gòu)造函數(shù)與析構(gòu)函數(shù)構(gòu)造函數(shù):創(chuàng)立對(duì)象時(shí)調(diào)用析構(gòu)函數(shù):對(duì)象銷毀時(shí)調(diào)用在程序中調(diào)用CLR自動(dòng)調(diào)用構(gòu)造函數(shù)與析構(gòu)函數(shù)構(gòu)造函數(shù)默認(rèn)構(gòu)造函數(shù)publicclassBankCard{

privatestringid;privatedecimalmoney;}BankCardcard1=newBankCard();構(gòu)造函數(shù)與析構(gòu)函數(shù)構(gòu)造函數(shù)默認(rèn)構(gòu)造函數(shù)無(wú)參構(gòu)造函數(shù)publicclassBankCard{

privatestringid;privatedecimalmoney;publicBankCard(){money=10;}}BankCardcard1=newBankCard();構(gòu)造函數(shù)與析構(gòu)函數(shù)構(gòu)造函數(shù)默認(rèn)構(gòu)造函數(shù)無(wú)參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)publicclassBankCard{

privatestringid;privatedecimalmoney;publicBankCard(strings){

id=s;}}BankCardcard1=newBankCard(“001”);構(gòu)造函數(shù)與析構(gòu)函數(shù)構(gòu)造函數(shù)默認(rèn)構(gòu)造函數(shù)無(wú)參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)私有/保護(hù)構(gòu)造函數(shù):不可用于對(duì)象創(chuàng)立構(gòu)造函數(shù)與析構(gòu)函數(shù)析構(gòu)函數(shù)銷毀對(duì)象無(wú)參數(shù)、無(wú)返回值、無(wú)修飾符由CLR自動(dòng)調(diào)用publicclassBankCard{

privatestringid;

privatedecimalmoney;privatestaticintobjects=0;

publicBankCard(decimalm)

{

money=m;id=(++objects).ToString();}~BankCard(){objects--;}}構(gòu)造函數(shù)與析構(gòu)函數(shù)實(shí)例構(gòu)造函數(shù):對(duì)象初始化靜態(tài)構(gòu)造函數(shù):類的初始化publicclassBankCard//續(xù){

privatestringid;

privatedecimalmoney;privatestaticintobjects=0;privatestaticintclasses=0;staticBankCard()

{

classes++;}}構(gòu)造函數(shù)與析構(gòu)函數(shù)程序開(kāi)發(fā)例如屬性封裝對(duì)對(duì)象單個(gè)“特性”的訪問(wèn)在本質(zhì)上是方法屬性封裝對(duì)字段的訪問(wèn)get訪問(wèn)器:讀取set訪問(wèn)器:設(shè)置publicclassBankCard{

privatestringid;privatedecimalmoney;publicstringId

{get{returnid;}}publicdecimalMoney

{

get{returnmoney;}set{money=value;}}}BankCardcard1=newBankCard();Console.WriteLine(card1.Id);card1.Money=600;所設(shè)置的值屬性程序開(kāi)發(fā)例如索引函數(shù)封裝對(duì)對(duì)象一組“特性”的訪問(wèn)類似于數(shù)組的訪問(wèn)方式索引函數(shù)支持下標(biāo)形式的訪問(wèn)get訪問(wèn)器:讀取set訪問(wèn)器:設(shè)置publicclassPrim{int[]x={1,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};publicintthis[intindex]{get{returnx[index];}set{x[index]=value;}}}Primp=newPrim();for(inti=0;i<5;i++)Console.WriteLine(p[i]);索引值索引函數(shù)程序開(kāi)發(fā)例如事件對(duì)象之間的通信一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象的效勞——方法一個(gè)對(duì)象自動(dòng)對(duì)其它對(duì)象的變化作出反響——事件25delegatevoidBookHandler(stringbook);publicclassBookStore{publiceventBookHandlerOnNewBook;

publicvoidNewBook(stringbook){OnNewBook(book);}}事件成員定義事件引發(fā)方法事件事件發(fā)布與訂閱發(fā)布者委托原型定義26publicclassCustomer{publicvoidRegister(BookStorestore){store.OnNewBook+=newBookHandler(store_OnNewBook);}

voidstore_OnNewBook(stringbook)

{Console.WriteLine(“書(shū)店新到新書(shū)“+book);}}事件綁定事件處理方法事件事件發(fā)布與訂閱發(fā)布者訂閱者27publicclassCustomer{publicvoidRegister(BookStorestore){store.OnNewBook+=store_OnNewBook;}

voidstore_OnNewBook(stringbook)

{Console.WriteLine(“書(shū)店新到新書(shū)“+book);}}事件綁定事件處理方法事件事件發(fā)布與訂閱發(fā)布者訂閱者發(fā)布者(BookStore)觸發(fā)器(NewBook)事件(OnNewBook)訂閱者(Customer)事件注冊(cè)Store_OnNewBookdelegateBookHandler事件事件發(fā)布與訂閱事件處理方法Store_OnNewBook29事件事件發(fā)布與訂閱EventHandler:作為大局部事件的通用原型delegatevoidBookHandler(stringbook);publicclassBookStore{publiceventEventHandlerOnNewBook;

publicvoidNewBook(stringbook){OnNewBook(book);}}30事件事件發(fā)布與訂閱EventHandler:作為大局部事件的通用原型Windows控件事件protectedvirtualvoidOnClick(EventArgse){if(Click!=null)Click(this,e);}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("您好");}Windows控件事件程序開(kāi)發(fā)例如事件預(yù)定義操作符

自定義操作符操作符重載publicclassComplex{publicdoublea;

publicdoubleb;

publicstaticComplexoperator+(Complexc1,Complexc2){returnnewComplex(){a=c1.a+c2.a,b=c1.b+c2.b};}}Complexc1=newComplex(){a=1.5,b=2.5};Complexc2=newComplex(){a=6,b=-3};Complexc3=c1+c2;預(yù)定義操作符

自定義操作符publicstaticToperator++(Tt)publicstaticToperator+(Tt1,Tt2)publicstaticimplicitoperatorS(Tt1)操作符重載程序開(kāi)發(fā)例如操作符重載this:當(dāng)前對(duì)象引用區(qū)分內(nèi)部字段和外部參數(shù)this關(guān)鍵字publicclassStudent{privatestringname;publicStudent(stringname){=name;}}this:當(dāng)前對(duì)象引用區(qū)分內(nèi)部字段和外部參數(shù)傳遞當(dāng)前對(duì)象this關(guān)鍵字publicclassStudent{privatestringname;publicStudentGetMe(){returnthis;}}Math:提供根本數(shù)學(xué)函數(shù)功能幾個(gè)常用類Math靜態(tài)字段PI:圓周率E:自然對(duì)數(shù)的底Math靜態(tài)字段PI:圓周率E:自然對(duì)數(shù)的底靜態(tài)方法整數(shù)運(yùn)算:Abs,Ceiling,Floor,Round……初等函數(shù):Exp,Pow,Log,Log10,Sqrt……三角函數(shù):Sin,Cos,Tan,Asin,Acos,Sinh,Cosh……程序開(kāi)發(fā)例如Math:提供根本數(shù)學(xué)函數(shù)功能幾個(gè)常用類Math:提供根本數(shù)學(xué)函數(shù)功能StringBuilder:提供對(duì)字符串的高效操作幾個(gè)常用類StringBuilder構(gòu)造函數(shù)性能優(yōu)化strings1="";for(inti=0;i<100;i++)s1+=i.ToString()StringBuilders1=newStringBuilder();for(inti=0;i<100;i++)s1.Append(i);低性能高性能字符串操作程序開(kāi)發(fā)例如Math:提供根本數(shù)學(xué)函數(shù)功能StringBuilder:提供對(duì)字符串的高效操作DateTime:封裝對(duì)日期/時(shí)間的操作幾個(gè)常用類DateTime日期/時(shí)間你會(huì)如何設(shè)計(jì)這個(gè)類型?DateTime字段Year,Month,Day,Hour,Minute,Second,MillisecondDateTime字段Year,Month,Day,Hour,Minute,Second,Millisecond靜態(tài)字段Now,TodayDateTime字段Year,Month,Day,Hour,Minute,Second,Millisecond靜態(tài)字段Now,Today方法更新時(shí)間:AddYears,AddDays,AddHours,AddSeconds……字符串解析:Parse,TryParse字符串表示:ToString,ToLongDateString,ToShortTimeString……Math:提供根本數(shù)學(xué)函數(shù)功能StringBuilder:提供對(duì)字符串的高效操作DateTime:封裝對(duì)日期/時(shí)間的操作集合類型:鏈表、隊(duì)列、堆棧幾個(gè)常用類集合類型ArrayList:提供維護(hù)動(dòng)態(tài)集合的鏈表結(jié)構(gòu)你會(huì)如何設(shè)計(jì)這個(gè)類型?集合類型ArrayList:鏈表Add:表尾參加成員ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");趙麗Head王強(qiáng)集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");趙麗Head王強(qiáng)Tom集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");趙麗Head王強(qiáng)Tom集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員Remove:刪除指定成員ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");list1.Remove("王強(qiáng)");集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員Remove:刪除指定成員RemoveAt:刪除指定位置ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");list1.Remove("王強(qiáng)");list1.RemoveAt(1);集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員Remove:刪除指定成員RemoveAt:刪除指定位置Contains:包含某元素?ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");list1.Remove("王強(qiáng)");list1.RemoveAt(1);boolb1=list1.Contains("王強(qiáng)");集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員Remove:刪除指定成員RemoveAt:刪除指定位置Contains:包含某元素?IndexOf:查找元素位置ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");list1.Remove("王強(qiáng)");list1.RemoveAt(1);boolb1=list1.Contains("王強(qiáng)");inti=list1.IndexOf("王強(qiáng)");集合類型ArrayList:鏈表Add:表尾參加成員Insert:插入成員Remove:刪除指定成員RemoveAt:刪除指定位置Contains:包含某元素?IndexOf:查找元素位置Count:元素個(gè)數(shù)ArrayListlist1=newArrayList();list1.Add("趙麗");list1.Add("王強(qiáng)");list1.Insert(1,"Tom");list1.Remove("王強(qiáng)");list1.RemoveAt(1);boolb1=list1.Contains("王強(qiáng)");inti=list1.IndexOf("王強(qiáng)");intn=list1.Count;集合類型Queue:隊(duì)列先進(jìn)先出集合類型Queue:隊(duì)列Enqueue:隊(duì)尾參加成員Queueq1=newQueue();q1.Enqueue(newDateTime(2012,1,6));q1.Enqueue("小寒");q1.Enqueue(13);集合類型Queue:隊(duì)列Enqueue:隊(duì)尾參加成員Dequeue:隊(duì)首取出成員Queueq1=newQueue();q1.Enqueue(newDateTime(2012,1,6));q1.Enqueue("小寒");q1.Enqueue(13);Console.Write(q1.Dequeue());集合類型Queue:隊(duì)列Enqueue:隊(duì)尾參加成員Dequeue:隊(duì)首取出成員Peek:訪問(wèn)隊(duì)首元素Queueq1=newQueue();q1.Enqueue(newDateTime(2012,1,6));q1.Enqueue("小寒");q1.Enqueue(13);Console.Write(q1.Dequeue());Console.WriteLine(q1.Peek());集合類型Stack:堆棧先進(jìn)后出集合類型Stack:堆棧Push:棧頂參加成員Stacks1=newStack();for(inti=0;i<10;i++)s1.Push(1);集合類型Stack:堆棧Push:棧頂參加成員Pop:棧頂取出成員Stacks1=newStack();for(inti=0;i<10;i++)s1.Push(1);Console.Write(s1.Pop());集合類型Stack:堆棧Push:棧頂參加成員Pop:棧頂取出成員Peek:訪問(wèn)棧頂元素Stacks1=newStack();for(inti=0;i<10;i++)s1.Push(1);Console.Write(s1.Pop());Console.WriteLine(s1.Peek());集合管理程序開(kāi)發(fā)例如Math:提供根本數(shù)學(xué)函數(shù)功能StringBuilder:提供對(duì)字符串的高效操作DateTime:封裝對(duì)日期/時(shí)間的操作集合類型:鏈表、隊(duì)列、堆棧Type:管理“類型”的高級(jí)類型幾個(gè)常用類Type“類型元信息”intx=5;doubley=1.2;intz=(int)y;Typet1=x.GetType();Typet2=y.GetType();整數(shù)類型元信息實(shí)數(shù)類型元信息Type“類型元信息”intx=5;doubley=1.2;intz=(int)y;Typet1=x.GetType();Typet2=y.GetType();bool

b1=(t1==t2);//falseType“類型元信息”intx=5;doubley=1.2;intz=(int)y;Typet1=x.GetType();Typet2=y.GetType();bool

b1=(t1==t2);//falseb1=(t1==t3.GetType());//trueb1=(t2==typeof(double));//trueType類型反射種類判斷:IsClass,IsInterface,IsValueType,IsEnum……intx=5;Typet1=x.GetType();Console.Write(t1.IsClass);//falseConsole.Write(t1.IsValueType);//trueType類型反射種類判斷:IsClass,IsInterface,IsValueType,IsEnum……intx=5;Typet1=x.GetType();Console.Write(t1.IsClass);//falseConsole.Write(t1.IsValueType);//trueTypet2=typeof(string);Console.Write(t2.IsClass);//trueType類型反射種類判斷:IsClass,IsInterface,IsValueType,IsEnum……成員信息:GetMembers,GetFields,GetProperties,GetMethods……boolHasMaxValue(Typet){foreach(PropertyInfopint.GetProperties())if(p.Name==“MaxValue”);returntrue;returnfalse;}Type類型反射種類判斷:IsClass,IsInterface,IsValueType,IsEnum……成員信息:GetMembers,GetFields,GetProperties,GetMethods……boolCanCompare(Typet){foreach(MethodInfomint.GetMethods())if(m.Name==“Compare”);returntrue;returnfalse;}類型反射程序開(kāi)發(fā)例如第6章課后練習(xí)編程實(shí)現(xiàn)復(fù)數(shù)類ComplexNumber,重載相關(guān)操作符編程求解一元二次方程ax2+bx+c=0使用StringBuilder來(lái)刪除一個(gè)字符串中的所有空格。第7章繼承和多態(tài)性鄭宇軍《C#語(yǔ)言程序設(shè)計(jì)(第3版)》清華大學(xué)出版社第7章繼承和多態(tài)性面向?qū)ο蟮姆椒▽W(xué)構(gòu)造函數(shù)和析構(gòu)函數(shù)屬性索引函數(shù)事件操作符重載

this關(guān)鍵字

幾個(gè)常用類繼承圖形矩形三角形橢圓形平行四邊形多邊形四邊形圓形菱形基類和派生類繼承基類和派生類publicclassShape{privatePoints[]points;publicdoubleGetArea(){return0;}}publicclassTriangle:Shape{}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{}繼承基類和派生類繼承基類的公有/保護(hù)成員publicclassShape{privatePoints[]points;publicdoubleGetArea(){return0;}}publicclassTriangle:Shape{}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{}繼承基類和派生類繼承基類的公有/保護(hù)成員增加新的成員publicclassShape{privatePoints[]points;publicdoubleGetArea(){return0;}}publicclassTriangle:Shape{publicdouble[]angles;}繼承基類和派生類繼承基類的公有/保護(hù)成員增加新的成員publicclassShape{privatePoints[]points;publicdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;}繼承基類和派生類繼承基類的公有/保護(hù)成員增加新的成員隱藏基類成員publicclassShape{privatePoints[]points;publicdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicnewdoubleGetArea(){return2*(width+height);}}繼承對(duì)象生命周期Shape::ConstructorQuadrangle::ConstructorRectangle::ConstructorShape::DestructorQuadrangle::DestructorRectangle::DestructorRectangler1=newRectangle();r1.Dispose();多態(tài)性虛擬和重載new:覆蓋基類成員publicclassShape{privatePoints[]points;publicdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicnewGetArea(){return2*(width+height);}}多態(tài)性虛擬和重載new:覆蓋基類成員virtual/override:重載基類成員publicclassShape{privatePoints[]points;publicvirtualdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}多態(tài)性虛擬和重載new:覆蓋基類成員virtual/override:重載基類成員publicclassShape{privatePoints[]points;publicvirtualdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}Shapes1=newShape();doublex=s1.GetArea();Quadrangleq1=newQuadrangle();x=q1.GetArea();Rectangler1=newRectangle();x=r1.GetArea();多態(tài)性虛擬和重載new:覆蓋基類成員virtual/override:重載基類成員publicclassShape{privatePoints[]points;publicvirtualdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverrideintGetArea(){return2*(width+height);}}虛擬和重載方法的簽名須一致!多態(tài)性虛擬和重載new:編譯時(shí)的多態(tài)性override:運(yùn)行時(shí)的多態(tài)性publicclassShape{privatePoints[]points;publicvirtualdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}Shapes1=newShape();doublex=s1.GetArea();Quadrangleq1=newQuadrangle();x=q1.GetArea();Rectangler1=newRectangle();x=r1.GetArea();多態(tài)性抽象類和抽象方法抽象類:不能創(chuàng)立實(shí)例publicabstractclassShape{privatePoints[]points;publicabstractdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}Shapes1=newShape();doublex=s1.GetArea();Quadrangleq1=newQuadrangle();x=q1.GetArea();Rectangler1=newRectangle();x=r1.GetArea();多態(tài)性抽象類和抽象方法抽象類:不能創(chuàng)立實(shí)例抽象方法:不能有實(shí)現(xiàn)代碼!publicabstractclassShape{privatePoints[]points;publicabstractdoubleGetArea(){return0;}}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}Quadrangleq1=newQuadrangle();x=q1.GetArea();Rectangler1=newRectangle();x=r1.GetArea();多態(tài)性抽象類和抽象方法抽象類:不能創(chuàng)立實(shí)例抽象方法:必須在非派生類中override!publicabstractclassShape{privatePoints[]points;publicabstractdoubleGetArea();}publicclassQuadrangle:Shape{}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}Quadrangleq1=newQuadrangle();x=q1.GetArea();Rectangler1=newRectangle();x=r1.GetArea();多態(tài)性抽象類和抽象方法抽象類:不能創(chuàng)立實(shí)例抽象方法:必須在非派生類中override!publicabstractclassShape{privatePoints[]points;publicabstractdoubleGetArea();}publicclassQuadrangle:Shape{publicoverridedoubleGetArea(){return0;}}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}Quadrangleq1=newQuadrangle();x=q1.GetArea();Rectangler1=newRectangle();x=r1.GetArea();也是virtual方法publicsealedclassQuadrangle:Shape{publicoverridedoubleGetArea(){return0;}}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}多態(tài)性抽象類和抽象方法abstract類:要求繼承sealed類:不能被繼承publicabstractclassShape{privatePoints[]points;publicabstractdoubleGetArea();}publicclassQuadrangle:Shape{publicsealeddoubleGetArea(){return0;}}publicclassRectangle:Quadrangle{publicdoublewidth;publicdoubleheight;publicoverridedoubleGetArea(){return2*(width+height);}}多態(tài)性抽象類和抽象方法abstract方法:要求重載sealed方法:不能被重載publicabstractclassShape{privatePoints[]points;publicabstractdoubleGetArea();}多態(tài)性程序開(kāi)發(fā)例如接口與繼承接口和抽象類publicabstractclassShape{publicabstractdoubleGetArea();}publicinterfaceIShape{doubleGetArea();}publicclassCircle:Shape,IShape{publicdoubleR{get;set;}publicoverridedoubleGetArea(){return3.14*R*R};publicdoubleI

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論