c++ 三種繼承(public protect private)

主要參考了下面的文章,根據它來談談自己的看法。

參考文章:http://blog.sina.com.cn/s/blog_60cc33d70100xylq.html

先貼張圖:

1. public繼承

    從語義角度上來說,public繼承是一種接口繼承(可以理解爲子類對象可以調用父類的接口,也就有可能實現多態了)

  從語法角度上來說,public繼承後,關係見上圖。很明顯父類public成員在子類中仍然是public,所以子類對象可以調用父類的接口

 

2. protected繼承

  從語義角度上來說,protected繼承是一種實現繼承

   從語法角度上來說,protected繼承後,父類public和protected成員都變成子類的protected成員了,也就是說子類對象無法調用父類的接口,只能將父類的函數當作子類的內部實現,當然也就不符合“Liskov替換原則(LSP”了。

 

3. private繼承

   從語義角度上來說,private繼承是一種實現繼承

  從語法角度上來說,private繼承後,父類public和protected成員都變成子類的private了,它比protected繼承更嚴格。也就說這些父類的成員只能被繼承一次,再繼續繼承,父類的成員就不可見了。private繼承更不符合“Liskov替換原則(LSP”了。

發佈了0 篇原創文章 · 獲贊 17 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章