繼承:可以減少**的重複
乙個新類可以從現有的類繼承特徵(屬性和方法) ;從現有的類產生新類的過程稱為派生。.
現有的用來派生新類的類稱為基類或父類,派生出來的類稱為****。
派生類可以作為基類繼續派生新的類,從而形成類的層次結構,
繼承方式
public:公有繼承
private:私有繼承**(預設)**
protected:保護繼承
通常在派生類類體中列出新增的資料成員
和成員函式(個性),基類的成員將自動成為派生類的成員(共性),不用重複編寫。
class
person
//基類
protected:/
/private 不能被繼承
int age;
string name;
public
:void
show()
};
//派生類
class
student
:public person
student()
};
●繼承基類全部成員**(不包括建構函式與析構函式)**
●調整接收成員(成員的許可權更改或者覆蓋)
●增加新成員(對基類的擴充)
繼承一般採用公有繼承。
通過繼承,派生類擁有了基類的資料成員和成員函式;
派生類在基類的基礎上可實施以下改變:
增加新的成員(資料+函式)。
過載(overload)基類的成員函式。
重定義(override,覆蓋)基類已有的成員函式。
改變基類成員在派生類中的訪問屬性。
派生類不能繼承基類的以下內容:
析構函式。
基類的友元函式。
靜態成員(資料+函式)
針對基類定義的一些特殊運算子,如new等。
基類的建構函式c++11之前不能繼承,之後可以繼承; 。
●基類成員的初始化由基類建構函式完成。
●派生類成員的初始化由派生類建構函式完
成。
當基類的建構函式有引數時,派生類的建構函式需要向基類的建構函式傳遞引數
格式:
派生類名(參數列)
:基類名(參數列)
基類最好具有預設建構函式
建構函式形式
派生類名(參數列)
:基類名(參數列)
,物件1
(參數列.
.物件成員n
(參數列)
派生類物件的構造順序:
步驟1:先構造基類;
步驟2:再構造物件成員;
步驟3:最後構造派生類自身;
關於構造和呼叫順序的說明
(1)基類構造順序由派生層次決定:最遠的基類最先構造;
(2)物件成員的構造順序與它們的定義順序符合;
(3)析構函式的析構順序與構造順序相反
Java物件導向 繼承 上
繼承 一種類與類之間的關係 使用已存在的類的定義作為基礎來建立新類 新類的定義可以增加新的資料或新的功能,也可以用父類的功能,但不能選擇性的繼承父類 滿足 a is a b 的關係就可以形成繼承關係 繼承通過extends關鍵字來實現 單一繼承,只能有乙個父類 基類 超類 子類在繼承自父類的時候,自...
物件導向繼承
using system class class1 class virtualclass class hiddenclass virtualclass class overrideclass virtualclass 結果為 父類 繼承類using system class class1 class...
物件導向 繼承
在原有物件的基礎上,略作修改,得到乙個新的物件,不影響原有物件的功能。即子類不影響父類,子類可以繼承父類的一些功能 復用 function createperson name,createperson.prototype.showname function var p1 new createpers...