C 物件導向之繼承 超詳細

2021-10-06 22:04:42 字數 1755 閱讀 7223

前言:繼承是物件導向程式設計的主要特徵之一,是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或新的功能,也可以用已存在的類的功能。

繼承是在類之間建立一種相交關係,使得新定義的派生類(子類)的例項可以繼承已有基類(父類)的特徵和能力,而且還可以加入新的特性或者修改已有的特性建立起類的新層次。

基類(父類):被繼承的類

派生類(子類):繼承的類

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 的這些日子裡,逐漸明白了物件導向是怎麼一回事。在以前我們敲 的時候是乙個功能乙個功能的實現,而現在我們...