在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 程式設計中為什麼要用繼承?在程式設計中,對程式猿來說最想做的就是用盡可能少且高效的 實現想要的功能。就像好多人都不願白手起家一樣,直接繼承父母的財產,使用繼承可以...