物件導向與C 程式設計 類的繼承與派生學習筆記

2021-07-31 12:56:17 字數 2694 閱讀 4598

繼承就是從先輩處得到屬性和行為特徵。

類的繼承就是新的類從已有類那裡得到已有的特性。

在c++中,繼承就是在乙個已存在的類的基礎上建立乙個新的類。

已存在的類稱為基類(base class),又稱為父類;新建立的類稱

為派生類(derived class),又稱為子類。

從已有的父類產生乙個新的子類,稱為類的派生。派生

類繼承了基類的所有資料成員和成員函式,具有基類的特性,派生

類還可以對成員作必要的增加或調整,定義自己的新特性。

單級派生

乙個派生類可以只從乙個基類派生,稱為單一繼承(single

inheritance),這是最常見的繼承形式,如圖所示,類b和類c都只

從類a派生。

graphlrb

-->ac-

->a

多級派生

乙個派生類有兩個及兩個以上的基類,稱為多重繼承(multiple

inheritance),如圖所示,類c從類a和類b派生。

graphlrc

-->ac-

->b

基類與派生類之間的關係為:
基類是對派生類的抽象,派生類是對基類的具體化。
宣告乙個派生類的一般格式為:
class 派生類名:[繼承方式] 基類名
基類名: 乙個已經宣告的類的名稱

派生類名: 繼承原有類的特性而生成的新類的名稱

繼承方式: 規定如何訪問從基類繼承的成員。

可以是public(公有繼承)、protected(保護繼承)或private(私有繼承)

如果未給出訪問標號則預設為private(私有繼承)

(1)可以增加新的資料成員;

(2)可以增加新的成員函式;

(3)可以對基類的成員進行重定義;

(4)可以改變基類成員在派生類中的訪問屬性

(1)基類中的私有成員
無論哪種繼承方式,積累中的私有成員都不允許派生類繼承,即在派生類中是不可訪問的。
(2)基類中的公有成員
公有繼承時,基類中的公有成員在派生類中仍以公有成員的身份出現。

私有繼承時,基類中的公有成員在派生類中都是以私有成員的身份出現的。

保護繼承時,基類中的公有成員在派生類中都是以保護成員的身份出現的。

(3)基類中的保護成員
公有繼承時,基類中的保護成員在派生類中仍以保護成員的身份出現。

私有繼承時,基類中的保護成員在派生類中都是以私有成員的身份出現的。

保護繼承時,基類中的保護成員在派生類中仍以保護成員的身份出現。

#include 

using

namespace

std;

class base //基類

//基類不帶引數的建構函式

base(int i) : b_number(i) //基類帶引數的建構函式

int get_number()

void print()

};class derived : public base //派生類

; //派生類建構函式

void print()//派生類增加的成員函式

};int main()

下列shape類是乙個表示形狀的基類,該類有乙個計算形狀面積的方法area( )。請以形狀類」shape」為基類派生出圓形類」circle」和矩形類」rectangle」,要求保持求面積的介面不變。從鍵盤輸入圓形的半徑和矩形的長和寬,在主函式中建立乙個圓形類」circle」的物件和乙個矩形類」rectangle」的物件,計算並輸出這個圓形和矩形的面積。圓周率pi=3.14

class shape

};

圓形類名:circle

注意:圓周率pi=3.14

矩形類名:rectangle

裁判測試程式樣例:

#include using namespace std;

class shape

};//你提交的**將嵌入到這裡。

int main()

; double area()

};class rectangle : public shape;

double area()

};

請從下列shape類派生出乙個圓形類circle,這個類圓形的半徑radius作為私有成員,類中應包含初始化半徑的建構函式。圓周率pi取3.1415926。

class shape ;

double getperimeter();

}

圓形類名circle

裁判測試程式樣例:

#include using namespace std;

class shape ;// 求面積

double getperimeter(); // 求周長

};/* 你提交的**將被嵌入到這裡 */

int main() ;

double getarea()

double getperimeter()

};

c 物件導向繼承與派生

概念 在 c 中,當定義乙個新的類 b 時,如果發現類 b 擁有某個已寫好的類 a 的全部特點,此外還有類 a 沒有的特點,那麼就不必從頭重寫類 b,而是可以把類 a 作為乙個 基類 也稱 父類 把類 b 寫為基類 a 的乙個 派生類 也稱 子類 這樣,就可以說從類 a 派生 出了類 b,也可以說類...

python物件導向程式設計 繼承與派生

一.什麼是繼承 繼承是一種新建類的方式,新建的類稱為子類,被繼承的類稱為父類 繼承的特性是 子類會遺傳父類的屬性 強調 繼承是類與類之間的關係 二.為什麼用繼承 因為繼承的好處就是可以減少 的冗餘 三.如何繼承 在python中支援乙個類同時繼承多個父類 在python3中 如果乙個類沒有繼承任何類...

物件導向2 繼承與派生

1 繼承的概念 引入 先定義了乙個類a,然後又想新建立另外乙個類b,但是類b的大部分內容與類a是相同的,我們不可能從新再寫乙個類b,這就用到了類的繼承的概念。通過繼承的方式新建類b,讓b繼承a,b會 遺傳 a的所有屬性 資料屬性和函式屬性 概念 繼承是指類與類之間的關係,是一種建立新類的方式,新建的...