C 程式設計入門10 物件導向之繼承

2021-08-09 11:11:36 字數 2763 閱讀 7860

在c#中,類的繼承是指在乙個現有類的基礎上去構建乙個新的類,構建出來的新類被稱作子類,現有的類被稱作父類,子類會自動擁有父類除構造方法和析構方法以外的所有成員。 

繼承關係的相關語法: 

class 子類:父類 

對於繼承父類的子類來說,子類可以使用父類中公有的成員。

對於c#來說,子類單繼承乙個父類,也就是說,c#繼承具有單一性。 

多個類可以同時繼承同乙個父類。

在c#中,多層繼承是可以的,即乙個類的父類可以再去繼承其他類,例如c類繼承自b類,b類又繼承自a類,這時,c類也可稱作a類的子類。

在現實生活中,繼承一般指的是子女繼承父輩的財產。在程式中,繼承描述的是事物之間的所屬關係,通過繼承可以使多種事物之間形成一種關係體系。例如貓和狗都屬於動物,在程式中便可認為貓和狗繼承自動物,同理波斯貓和巴厘貓繼承自貓,而沙皮狗和斑點狗繼承自狗,這些動物之間會形成乙個繼承體系,具體如圖 

公有的字段是可以被繼承的 

公有的屬性是可以被繼承的 

公有的方法可以被繼承 

構造方法是不可以被繼承的 

【注意】所有公有的方法是可以被繼承的 說法是錯誤的,因為公有的構造方法是不能被繼承的

在實際開發過程中,某些方法的引數型別為引用型別,但是如果呼叫時傳入的是值型別,此時需要進行裝箱操作。同樣當乙個方法的返回值型別為值型別,但實際方法返回值為引用型別,那麼就需要進行拆箱操作。簡單來說,裝箱就是將值型別轉換為引用型別,拆箱就是將引用型別轉換為值型別

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 裝箱拆箱操作}}

裝箱和拆箱過程本質上是資料儲存在棧與堆之間變更,因此頻繁的裝箱、拆箱操作會影響運算效率,所以要儘量減少相關操作。

子類:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 黎克特制轉換原則

public

dog(string name, int age, char gender):base(name,age,gender)

public

void

bark()}}

父類:

using system;

using system.collections.generic;

using system.io;

using system.linq;

using system.text;

namespace 黎克特制轉換原則

set}

public

int age

set}

public

char gender

set}

public

animal()

public

animal(string name, int age, char gender)

public

void

eat()}}

program類

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 黎克特制轉換原則}}

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace is和as的區別

//else

////as

//as 可以將animals[i]直接轉化 轉化成功 返回乙個dog例項 否則返回null

dog dog = animals[i] as dog;

if (dog !=null)

cat cat = animals[i] as cat;

if (cat != null)}}

}}

子類在繼承父類時可以對父類的成員進行擴充套件,如果子類中出現與父類同名的方法,那麼在呼叫該方法時程式就不能明確該方法是屬於父類還是子類,這時編譯器就會提示使用new關鍵字隱藏基類方法。

在子類的字段、屬性、方法的訪問修飾符(一般是public)之後新增new即可 

示例**如下

public

newvoid

eat()

在c#中,使用sealed關鍵字修飾的類不可以被繼承,也就是說不能派生子類,這樣的類通常被稱作密封類。 

我們經常使用的string型別就是乙個密封類

物件導向程式設計 繼承(C )

1 繼承是軟體重用的一種方式,程式設計師通過繼承,可以吸收現有類的資料和行為來建立新類。2 幾個概念 1 直接基類 現有的類稱為基類,派生類可以由基類繼承而來。2 間接基類 通過兩級或更多級類層次繼承的類 3 單繼承 派生類由繼承乙個基類而得到。4 多繼承 派生類由多個類繼承而來。3 三種繼承方式 ...

物件導向c 之繼承

物件導向三大機制包括 1.封裝,隱藏內部實現。2.繼承,復用現有 物件導向最顯著的特徵 3.多型,改寫物件行為。繼承,是一種復用的手段。是從先輩處得到屬性和行為特徵。類的繼承就是新的類從已 有 的類那裡得到已有的特徵。類成員的訪問限定有三種 public,protected,private,在類外可...

c 物件導向之繼承

1 什麼是繼承?繼承簡單來理解就是子承父業,也即是孩子可以直接使用父親的東西,這樣自己就可以少奮鬥一些,父親有的東西可以直接拿過來用。2 程式設計中為什麼要用繼承?在程式設計中,對程式猿來說最想做的就是用盡可能少且高效的 實現想要的功能。就像好多人都不願白手起家一樣,直接繼承父母的財產,使用繼承可以...