物件導向之繼承

2021-08-04 05:10:53 字數 1442 閱讀 8479

此段摘自

繼承方式限定了基類成員在派生類中的訪問許可權,包括 public(公有的)、private(私有的)和 protected(受保護的)。此項是可選的,如果不寫,預設為 private 或 protected。

不要將繼承方式成員屬性搞混了,不同的繼承方式會賦予繼承來的成員不同的屬性

簡單說一下public、private和protect這三種屬性:

public:公有屬性,能夠被本類成員函式、友員函式和派生類成員函式訪問,也能被物件所在的函式訪問(4個許可權)

protect:保護屬性,能夠被本類成員、友員和派生類訪問,但不能被物件所在的函式訪問(3個許可權)

private:私有屬性,只能被本類成員和友員訪問(2個許可權)

1) public繼承方式

2) protected繼承方式

3) private繼承方式

由此可見:

private 繼承限制太多,實際開發中很少使用,一般使用 public。

基類構造 -> 派生類構造 -> 派生類析構 -> 基類析構

隱藏是在基類和派生類有同名成員時產生的概念,當成員同名時,該名字代表的是派生類的成員,要訪問基類成員,必須新增基類的域。

//父類,擁有成員函式play()和成員變數salary

class people;};

//子類,也擁有成員函式play()成員變數salary

class worker:public people

;};

int main()

雖然c++中允許父類和子類擁有同名成員,但在實際編碼運用中我們應該盡量不要使用同名成員,以免造成不必要的麻煩。成員變數規範命名是完全可以避免出現這種情況的

因為派生類會完全繼承基類的資料成員,所以可以把基類物件作為左值,派生類物件作為右值進行賦值運算(反之不可以)。賦值過程呼叫基類的拷貝建構函式。

int main()

與賦值運算相似,基類的指標也可以指向派生類實現基類的一些功能。

需要指出的是:如果用基類指標接收動態記憶體申請的派生類物件時要把基類中的析構函式定義為虛析構函式,否則派生類的析構函式在執行delete時將不會執行。

顧名思義,多繼承就是乙個派生類有多個基類,多重繼承就是乙個派生類的基類還有其基類。

除了類之外,結構體也是可以以繼承的

物件導向之繼承

繼承 是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類 基類,超類 繼承描述的是一種遺傳關係,子類可以使用父類的屬性 注意 1 乙個類可以同時繼承多個父類 2 python中類分為兩種 新式類 繼承了object的類叫新式類,python3中所有的類都繼承了object類,即python3中...

物件導向之繼承

介紹 第一天的內容主要是不同情形下的方法過載。這一部分則主要講物件導向中繼承的概念。首先用乙個要點圖形來定義繼承。繼承 乙個簡單的例子 classa classclassa classb classb classclassb publicvoiddisplay2 classprogram 輸出結果 ...

物件導向之繼承

練習題 練習題 1class base def init self,num self.num num deffunc1 self print self.num class foo base pass obj foo 123 obj.func1 2 class base def init self,n...