1. 程式人生 > >類的三種繼承方式

類的三種繼承方式

類的繼承方式——公有型(public)、保護型(protected)、私有型(private), 訪問控制修飾符也有public、protected、private3種類型。繼承方式不同,可訪問性也不同,[這個部落格也很詳細](http://blog.csdn.net/chlele0105/article/details/22413157)。
  1. 公有型派生
    公有型派生表示對於基類中的public資料成員和成員函式,在派生類中依舊是public,對於基類中的private資料成員和成員函式,在派生類中依舊是private。
    例如
class CEmployee
{
public:
    void
Output() { cout<<m_ID<<endl; cout<<m_Name<<endl; cout<<m_Depart<<endl; } private: int m_ID; char m_Name[128]; char m_Depart[128]; } class COperator:public CEmployee { public: void output() { cout<<m_ID<<endl;//引用基類的私有成員,錯誤
} }
  1. 私有型派生
    私有型派生表示對於基類中的public、protected資料成員和成員函式,在派生類中可以訪問。基類中的private資料成員,在派生類中不可以訪問
    例如
class CEmployee                         //定義員工類
{
public:
void Output()                           //定義共有成員函式
  {
    cout<<m_ID<<endl;
    cout <<m_Name<<endl;        
    cout
<<m_Depart<<endl; } int m_ID; //定義員工ID protected: char m_Name[128]; //定義員工姓名 private: char m_Depart[128]; //定義所屬部門 }; class COperator :private CEmployee //私有繼承 { public: void Output() { cout<<m_ID<<endl; //正確 cout <<m_Name<<endl; //正確 cout <<m_Depart<<endl; //錯誤 } }
  1. 保護型派生
    保護型派生表示積累中的public、protected資料成員和成員函式,在派生類中均為protected。protected型別在派生類中的定義可以訪問,用派生類宣告的物件不可以訪問,即在類體外不可以訪問。protected成員可以被基類的所有派生類使用。這一性質可以沿繼承樹無限向下傳播。

相關推薦

C++中繼承方式public(公有繼承)、protected(保護繼承)、private(私有繼承)之間的差別(附思維導圖)【轉】

(轉自:https://blog.csdn.net/coco56/article/details/80467975) 注:若不指明繼承方式,則預設是私有繼承。 一:對於公有繼承(public)方式: 基類的public和protected成員的訪問屬性在派生類中保持不變,但基類的p

繼承方式可訪問性和友元函式.cpp

/*類的三種繼承方式可訪問性和友元函式 */# include <iostream> using namespace std;class A{        friend int get(const A& a);//宣告該函式為A的友元函式,使之可以在外部訪問A,友元函式也可以繼承publ

繼承方式

類的繼承方式——公有型(public)、保護型(protected)、私有型(private), 訪問控制修飾符也有public、protected、private3種類型。繼承方式不同,可訪問性也不同

繼承方式的訪問許可權.

    每次寫類需要用到繼承關係的時候我都習慣性的用public,而有些時候用其它兩種繼承方式(保護繼承和私有繼承)還是比較方便的,但是自己但是就是想不起來用,看到別人用它而設計出的類機構很好的時候遊羨慕不已,我以前學習C++的時候也注意過這兩種繼承方式各個區域(public

繼承(派生繼承方式,多重繼承,虛繼承

  繼承性是面向物件程式設計的第二大特性,它允許在既有類的基礎上建立新類,新類可以繼承既有類的資料成員和成員函式,可以新增自己特有的資料成員和成員函式,還可以對既有類中的成員函式重新定義。利用類的繼承和派生實現了更高層次的程式碼可重用性,符合現代軟體開發的思想。    

繼承方式訪問權限

-a prot play 9.png png -h .cn orm font 也就是說子類只能訪問父類的保護和公有成員,而對象只能訪問公有成員。繼承方式 1. 三種繼承方式不影響子類對父類的訪問權限,子類對父類只看父類的訪問控制權。 2. 繼承

C++: 繼承和多型(一)繼承方式與許可權

繼承 在C++中,我們常要對某個函式進行多次複用,例如: 資訊管理系統中,對於教師、學生、教務人員等"類"而言,有部分資訊是通用的:姓名,性別,年齡,聯絡方式等。如果為每一種角色都編寫一個"類",會有不少重複的程式碼,造成效率上的浪費。       &nbs

C++的訪問許可權與繼承方式

三種訪問許可權 我們知道C++中的類,有三種訪問許可權(也稱作訪問控制),它們分別是public、protected、private。要理解它們其實也很容易,看下面了一個例子。 父類: class Person { public: Person

C++ 繼承方式和建構函式執行的順序

C++中的繼承方式有:   public、private、protected三種(它們直接影響到派生類的成員、及其物件對基類成員訪問的規則)。  (1)public(公有繼承):繼承時保持基類中各成員屬性不變,並且基類中private成員被隱藏。派生類的成員只能訪問基類中的

js物件的繼承方式

一,js中物件繼承 js中有三種繼承方式 1.js原型(prototype)實現繼承 複製程式碼 程式碼如下: <SPAN style="BACKGROUND-COLOR: #ffffff"><SPAN style="FONT-SIZE: 18px">

js的繼承方式及其優缺點

第一種,prototype的方式: //父類 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow';

繼承方式訪問許可權的相互組合

        對基類進行繼承時,三種繼承方式下,基類的三種訪問許可權在子類中會有如何的變化這個問題,本科時上C++這門課的時候曾仔細的分析並弄得挺清楚,後來時間久了、用的也不多,慢慢的又變得心裡不太有譜了。這次接著準備面試的契機,又重新仔細分析了一番,留個案底,以免再犯糊塗

繼承方式

1、關於公有繼承,子類的物件可以直接訪問基類的公有的函式或者變數。 基類成員對派生類的可見性對派生類來說,基類的公有成員和保護成員可見,基類的公有成員和保護成員作為派生類的成員時,他們保持原有狀態,基類的私有成員不可見,基類的私有成員仍然是私有的,派生類不可以訪問基類的私

sql註入過程中後臺數據庫型的判斷方式

sql註入 安全測試 數據庫類型判斷 後臺數據庫類型判斷:一、通過頁面返回的報錯信息,一般情況下頁面報錯會顯示是什麽數據庫類型,在此不多說;二、通過各個數據庫特有的數據表來判斷: 1、mssql數據庫 http://127.0.0.1/test.php?id=1 and (sele

用Gson、FastJson、Android原生方式做Json節點解析

一、用Gson做節點解析 json: {'flag':true,'data':{'name':'張三','age':18,'sex':true}} 步驟 : 獲得 解析者 JsonParser parser = new JsonParser(); 獲

Struts2 Action編寫方式

Action類的三種編寫方式     1,使用公共POJO類作為Action,提供公共無引數的Action方法(不推薦)               缺點:沒有一種方式約束Action方法

Java程式碼複用的常用方式繼承、組合和代理

複用程式碼是Java眾多引人注目的功能之一。這句話很通順,沒什麼問題,但問題在於很多人並不清楚“複用”是什麼。就好像我說“沉默王二是一個不止會寫程式碼的程式設計師”,唉,沉默王二是誰? 如果想學習Java工程化、高效能及分散式、深入淺出。微服務、Spring,MyBatis,Netty原始碼分析的朋友可以加

2 struts2 Action建立方式

目前都在使用繼承ActionSupport類的方法,因為實現了很多方法。 1.直接建立Java類 package action; /** * 測試action用類 * action類必要條件:public修飾符 返回值String * 需要在strust.xm

Java代碼復用的常用方式繼承、組合和代理

是個 繼續 不想 完成 extend 工作 代碼復用 輕松 例如 復用代碼是Java眾多引人註目的功能之一。這句話很通順,沒什麽問題,但問題在於很多人並不清楚“復用”是什麽。就好像我說“沈默王二是一個不止會寫代碼的程序員”,唉,沈默王二是誰? 我們需要來給“復用”下一個定義

Struts2之Action編寫方式

Action類的三種編寫方式 Action 類就是一個pojo類 (Plain Ordinary Java Object)簡單的java物件,沒有繼承某個類,沒有實現介面,就是POJO類 Action類可以實現Action介面