日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第六章:继承和多态

發(fā)布時間:2024/4/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第六章:继承和多态 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一:本章目標

①:理解繼承的概念

②:使用繼承建立父類和子類以及繼承的傳遞性、單根性

③:訪問修飾符

④:多態(tài)的概念

⑤:會使用虛方法實現(xiàn)多態(tài)

?

二:所謂繼承:

在C#中,如果一個類后面通過冒號又跟了另外一個類,那么我們就稱冒號前面的類為子類,冒號后面的類為父類。這種書寫類的方式放映出來的關系就稱為類的繼承關系。

?

1、子類:派生類

父類:基類或者超類

2、滿足什么條件的類可以使用繼承??

滿足is a關系的兩個類可以使用繼承。

例如:

?

? ? ?經理is a a?員工

?

?????程序員 ?is a?員工

?

?????學生?is ?a Person

?


繼承的優(yōu)點:減少代碼冗余,實現(xiàn)代碼復用

?

☆繼承模式下子類構造,背后到底發(fā)生了什么???

eg:

創(chuàng)建出Animal(父類)、Dog(子類)

關鍵代碼如下:

父類:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Chap06 {public class Animal{//定義自動屬性 年齡和姓名public int Age { get; set; }public string Name { get; set; }//無參構造public Animal(){ }//帶參構造public Animal(int age,string name){this.Age = age;this.Name = name;}} }

子類:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Chap06 {public class Dog:Animal{public string Color{ get; set; }//無參構造public Dog(){ }//帶參構造public Dog(int age,string name,string color){this.Age = age;this.Name = name;this.Color = color;}public void Eat(){Console.WriteLine("Dog Eat Meat Very Happy!");}} }

Main方法:

namespace Chap06 {class Program{static void Main(string[] args){//創(chuàng)建Dog對象Dog dog = new Dog();//調用子類中的Eat()方法dog.Eat();Console.ReadKey();}} }

解析:

如果我們想構建一個子類對象...

1、進入子類構造方法名,但不進入子類構造的方法體

2、跳轉到父類構造方法名,接下來執(zhí)行父類構造的方法體

3、父類方法體執(zhí)行完畢,跳轉到子類方法體執(zhí)行

4、子類方法體執(zhí)行完畢,跳轉到Main函數(shù),代表子類對象創(chuàng)建過程

?

?

注:繼承關系在類圖中表示為一個箭頭,箭頭指向的是父類。

子類可以繼承父類的非私有成員

一個子類只能有一個直接父類

子類構造默認會調用父類的無參構造

三:base關鍵字

解析:

①:父類的實例

②:看成是調用父類的構造,只出現(xiàn)在子類構造后面

③:base(參數(shù)列表)父類帶參構造的參數(shù)列表一致

④:相當于方法調用,不帶有數(shù)據(jù)類型

?

四:訪問修飾符

①:Public:任何位置都能訪問(方法,成員變量,類)

②:Private:只能當前類自身訪問,出了類所在{}無法訪問(方法,成員變量)

③:Protected:當前類和子類能訪問及子類的子類(孫子類)(方法以及變量)

④:Internal:只能在當前程序集中使用

三種訪問修飾符對類成員的訪問限制強度:Private>Protected>Public

五:繼承的特性:

①:傳遞性:

如果一個類B繼承自類A,而類C又繼承類B,那么類C也可以訪問到類A中非私有成員

?

②:單根性(C#不支持多繼承?Java也不支持多繼承)

?

?

六:繼承的價值

01.模擬現(xiàn)實世界的關系

02.便于重用和擴展已徹底測試的代碼,且無需修改

03.結構更清晰

七:實現(xiàn)多態(tài)

概念:

不同的對象對于同一個操作,做出的響應不同,那么這種情況在面向對象編程中就稱為多態(tài)。

使用多態(tài)的目的:

使用多態(tài)就是為了統(tǒng)一調用。

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

①:通過虛方法:

實現(xiàn)多態(tài)的步驟:

01.在父類中通過virtual關鍵字定義一個虛方法

02.在子類中通過override關鍵字對父類中的虛方法進行重寫

03.調用的時候,調用的是子類的方法

?

Main方法進行創(chuàng)建對象以及遍歷集合:

namespace Chap06多態(tài) {class Program{static void Main(string[] args){Chinese chinese = new Chinese();American american = new American();Korea korea = new Korea();Person[] p ={chinese,american,korea};//遍歷集合中的元素,調用對應子類中的Hello方法foreach (Person item in p){item.Hello();}Console.ReadLine();}}

?

轉載于:https://www.cnblogs.com/hr1997/p/5378012.html

總結

以上是生活随笔為你收集整理的第六章:继承和多态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。