頁:
[1]
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> 我記得兩個應該是有取得父class的參數和函數的難易程度
private應該是都不能取用 protected應該會相對寬鬆一些 private:其他類和繼承類都不能訪問
protected:其他類不能訪問,繼承類可以訪問 我也記得private是最嚴謹的,只能使用裡面的函式取出資訊,protected放寬一些 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> 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]