當前位置:
首頁 > 知識 > 公有繼承,私有繼承,保護繼承的區別

公有繼承,私有繼承,保護繼承的區別

一個子類繼承父類時,可按照public、private和protected方式繼承父類,每種繼承方式的區別如下:

1) public繼承方式

  • 基類中所有public成員在派生類中為public屬性;

  • 基類中所有protected成員在派生類中為protected屬性;
  • 基類中所有private成員在派生類中不可訪問。

2) protected繼承方式

  • 基類中的所有public成員在派生類中為protected屬性;

  • 基類中的所有protected成員在派生類中為protected屬性;
  • 基類中的所有private成員在派生類中仍然不可訪問。

3) private繼承方式

  • 基類中的所有public成員在派生類中均為private屬性;
  • 基類中的所有protected成員在派生類中均為private屬性;
  • 基類中的所有private成員在派生類中均不可訪問。

表1 基類成員在派生類中的的訪問屬性 基類中的成員 在公用派生類中的訪問屬性 在私有派生類中的訪問屬性 在保護派生類中的訪問屬性 私有成員 不可訪問 不可訪問 不可訪問 公用成員 公用 私有 保護 保護成員 保護 私有 保護

不管哪種繼承方式,父類的私有成員都不可以訪問,只有間接的通過公有成員才能獲取到私有成員的值

protected存在的意義是當我不想向外部暴露某個函數或者成員變數,但是我又想讓派生類知道和訪問這個成員,就將其用rotected標誌。
舉例:
你爹有兩筆存款,一筆是他養老用的,一筆是留給你買房的,養老用的這部分錢你肯定不能拿而且大概你也不知道有多少錢,但是給你買房用的你就可以隨便拿,如果你連養老用的這部分錢都拿了那你就是不肖子了,但是你爹可以隨便動給你買房的錢(因為錢是他賺的)。當然,不管是養老用的錢還是給你買房用的錢,外人都不能動而且也不知道。

公有繼承,私有繼承,保護繼承的區別

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Spark2.1.0事件匯流排分析——LiveListenerBus詳解
高並發之緩存的特徵和應用

TAG:程序員小新人學習 |