程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 繼承與派生基礎概念

繼承與派生基礎概念

編輯:C++入門知識

面向對象的程序設計主要有四個特點:抽象、封裝、繼承和多態。其中繼承是我認為最最重要的一個特性,可以說繼承是面向對象的精華所在。   舉一個繼承的淺顯易懂的例子:假如我們已經有了一個“馬”的類,其中成員變量有身長、身高、體重等,還有“吃”、“奔跑”等成員函數,現在我們想創建新類”公馬“和”母馬“,很明顯公馬母馬具有馬的所有特征,我們就不需要重新再寫,只需要在原有類的基礎上增加”性別“這一新特征,即可創建兩個新類。同理,白公馬、黑公馬可以從公馬這一個類派生出來,也就是說它可以繼承公馬的全部特征而加上顏色這一新特征即可。馬是公馬的基類,公馬是白公馬的基類,所以我們可以看出基類、派生類都是相對而言的。   一、派生類的聲明方式   下面通過剛才舉的例子來說明    

class horse  
{  
public:  
    void eat();  
    void run();  
      
private:  
    float height;  
    float weight;  
};  
class malehorse:public horse  
{  
private:  
    char sex;           //只寫新增加的成員  
};  
class wh_mhorse:public malehorse  
{  
private:  
    char color;  
};  
void horse::eat(){  
    cout<<"horse eats grass"<<endl;  
}  

 

    派生類聲明方式為 class  派生類名 :繼承方式  基類名   二、派生類訪問屬性   首先,繼承有三種方式:public、protected、private。想必在剛學C++時大家都有這樣的疑惑,感覺protected和private屬性是一樣的,反正都不能從類外訪問。到了這裡就有區別了:private是”私有“的,不管何種繼承方式基類的私有成員都是基類所私有,派生類不可訪問;而基類protected成員隨繼承方式的不同在派生類中擔當不同身份。下面詳細介紹一下   (1)共用繼承   基類的共有成員和保護成員在派生類中保持原有訪問屬性,私有成員扔為基類所有。   (2)保護繼承   基類的共有成員和保護成員在派生類中成了保護成員。   (3)私有繼承   基類的共有成員和保護成員在派生類中成了私有成員。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved