查看完整版本: class中3P的用法?
頁: [1]

b2581167 發表於 2017-11-22 08:00 PM

class中3P的用法?

最近在練程式突然想到,當我們在class要繼承父class時,
protected與private這兩種繼承怎麼區別,
因為在只有兩個class互相有繼承關係上,
這兩個類型好像沒太大差異,
假如C1:protected C2與
      C1:private C2上
在資料的繼承使用方式上似乎沒甚麼差異,
一樣都是需要透過C2的函數才能調用C1的public與protected的資訊,

除非今天有了C3要繼承C2的屬性情形,
C2當初是用protected還是private來繼承C1才會有影響吧?

我這樣的觀念有錯嗎???
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

z1090128 發表於 2017-11-25 10:42 AM

我記得兩個應該是有取得父class的參數和函數的難易程度
private應該是都不能取用  protected應該會相對寬鬆一些

lijinf2 發表於 2018-1-9 10:23 PM

private:其他類和繼承類都不能訪問
protected:其他類不能訪問,繼承類可以訪問

z1090128 發表於 2018-3-12 11:22 PM

我也記得private是最嚴謹的,只能使用裡面的函式取出資訊,protected放寬一些

love88131496 發表於 2018-7-13 06:18 PM

OO的領域,關於繼承相關的,個人都用三個角色來思考:
寫Class的人,再次利用的人,直接使用的人

private只能自身類別取用。宣告成private的意思就是: 寫Class以外的人都不用去理會,不用去懂。(再次利用的人、直接使用的人都不能)

protected允許繼承類別取用。宣告成protected的意思是: 再次利用的人,可以直接用(繼承類別可用)。直接使用的人還是不能用。

假設妳要寫一堆Class, 也希望有人(包含妳自己),可以"拿去改了以後再給別人用",那這些"要給改的人用的"就是用protected。希望給別人直接用(也就是new instance呼叫的),就是public。剩下的秘密自己知道的,就private

以上...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

superjoeliao 發表於 2018-7-15 08:39 PM

C++繼承關係圖 http://jashliao.eu/wordpress/2013/07/07/cc%E5%9F%BA%E7%A4%8E-c%E7%B9%BC%E6%89%BF%E7%8B%80%E6%85%8B%E8%A1%A8/

我找到的,我覺得整理的不錯,跟您分享
頁: [1]