前言:繼承是物件導向程式設計的主要特徵之一,是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或新的功能,也可以用已存在的類的功能。
繼承是在類之間建立一種相交關係,使得新定義的派生類(子類)的例項可以繼承已有基類(父類)的特徵和能力,而且還可以加入新的特性或者修改已有的特性建立起類的新層次。
基類(父類):被繼承的類
派生類(子類):繼承的類
class
program
}public
class
peopole
public
void
eat()}
public
class
man:
peopole
public
void
eat1()
}
//當派生類需要覆蓋基類的方法時,使用new修飾符來實現隱藏基類成員
class
program
}public
class
peopole
public
void
eat()}
public
class
man:
peopole
public
newvoid
eat(
)//new實現基類方法的隱藏
}
如果說我們對類不作任何約束,所有類都可以被繼承,這種繼承的濫用會導致類的層次結構十分龐
大,類與類之間的關係會變得很亂導致無法理解,所以我們需要密封類。
密封類的使用方法:在基類前加上sealed修飾符,則基類將不能被繼承了。密封方法也是在方法前加上sealed修飾符。
抽象類和密封類剛好相反,它是為繼承而生的。抽象類不能例項化,抽象方法沒有具體執行**,必須在非抽象的派生類中重寫。也就是基類並不實現任何執行**,只是進行定義。這一點和介面有相同的地方。
class
program
}public
abstract
class
peopole
//注意:如果類中有抽象方法,則類必須宣告為抽象類。
public
abstract
void
eat();
//有時候不想把類宣告為抽象類,但又想實現方法在基類裡不具體實現,而是想實現方法由派生類重寫。遇到這種情況時可使用virtual關鍵字將方法宣告為虛方法
public
virtual
void
say()}
public
class
man:
peopole
public
override
void
eat(
)public
override
void
say(
)}
class
program
}public
abstract
class
peopole,")
;}}public
class
man:
peopole,")
;}}
派生類呼叫基類建構函式詳解請閱讀文章c#base關鍵字呼叫基類建構函式 物件導向c 之繼承
物件導向三大機制包括 1.封裝,隱藏內部實現。2.繼承,復用現有 物件導向最顯著的特徵 3.多型,改寫物件行為。繼承,是一種復用的手段。是從先輩處得到屬性和行為特徵。類的繼承就是新的類從已 有 的類那裡得到已有的特徵。類成員的訪問限定有三種 public,protected,private,在類外可...
c 物件導向之繼承
1 什麼是繼承?繼承簡單來理解就是子承父業,也即是孩子可以直接使用父親的東西,這樣自己就可以少奮鬥一些,父親有的東西可以直接拿過來用。2 程式設計中為什麼要用繼承?在程式設計中,對程式猿來說最想做的就是用盡可能少且高效的 實現想要的功能。就像好多人都不願白手起家一樣,直接繼承父母的財產,使用繼承可以...
C 篇 物件導向之繼承
物件導向有三大特色 多型 繼承和封裝,我們已經熟悉的不能再熟悉了,然而在c 中要怎麼用呢?現在就著重總結一下繼承。在很早之前就聽他們說vb並不是真正的物件導向,它是一種面向過程的設計語言,在學習c 的這些日子裡,逐漸明白了物件導向是怎麼一回事。在以前我們敲 的時候是乙個功能乙個功能的實現,而現在我們...