繼承概念:繼承機制是物件導向設計使**可以復用的最重要的手段,它允許程式設計師在保持原有類特性的基礎上進行擴充套件,增加功能,這樣產生的新類,稱為派生類。
#include
using
namespace std;
//基類
class
base
void
printfbase()
public
:int _b;};
//派生類
class
derived
:public base
;int
main()
繼承定義:
三種繼承方式之間的區別:基類中不同許可權的成員在子類中的許可權。
如果基類沒有定義建構函式或者基類具有預設的建構函式(無參的和全預設的建構函式)
-派生類可以不用定義
-如果派生類需要做其他事情,將自己的建構函式顯示給出就行
如果基類具有無參的建構函式時,派生類必須顯示定義自己的建構函式,並且必須在其初始化列表的位置顯式呼叫基類的建構函式,完成派生類物件中基類部分成員的初始化。
如果基類沒有顯示定義自己的拷貝建構函式,派生類是否定義都可以
如果基類顯示定義自己的拷貝建構函式,派生類必須顯示定義拷貝建構函式,並且需要在其拷貝構造初始化列表的位置顯示呼叫基類的拷貝建構函式。
沒有涉及到管理時:如果派生類沒有顯示定義自己的賦值運算子過載,編譯器會生成乙份預設的。該預設的賦值運算子過載可以完整的賦值。
如果類中涉及到資源管理:派生類需要將自己的拷貝建構函式顯示給出,必須在其內部顯示呼叫基類的賦值運算子過載完成基類部分的賦值,再完成自己特有的成員賦值。
派生類物件:基類部分+派生類部分
派生類的析構函式會在被呼叫完後自動呼叫基類的析構函式清理基類成員。因為這樣才能保證派生類物件先清理派生類成員再清理基類成員的順序。
派生類物件初始化先呼叫基類的構造再呼叫派生類構造
派生類物件析構清理先呼叫派生類析構再呼叫基類析構
物件導向三大特性之繼承
1 author kelvin2 date 2019 1 16 18 5734 class father 5 money 100067 def init self,name 8print 父類的init方法.9 self.name name 1011 defteach self 12print s ...
物件導向三大特性之繼承
子類繼承 1 子類和父類如果在同乙個包內,則子類可以繼承父類的除private以外的所有成員變數和方法,並且許可權不變 2 子類和父類如果不在同乙個包內,則子類可以繼承父類的public和protected許可權的成員變數和方法,不能繼承友好型和private 繼承的優點 1.提高 的重用性,子類繼...
物件導向三大特性之繼承(二)
繼承是物件導向最顯著的乙個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力。編寫乙個father類作為父類 抽象類 1 父類裡必須有乙個abstract修飾符 2 方法上也必須有修飾符 3 抽象方法沒有具體的實現方法體 4 所有的子類必須都要實現抽象方法...