看板 java 關於我們 聯絡資訊
以下淺見… 有 A 與 B 兩個 Programmer… A 寫了一個類別,B 去繼承該類別,B 沒有原始碼,對 B 來說,他只會看到他繼承 該類別之後,能看到 public、protected 成員,該類別對 B 來說,其他都是黑箱 裏的東西,看不到,摸不著,而且就設計上來說,也不該去探知黑箱裏的東西… 對 A 來說,有東西設為 private,就是在跟別的 Programer 說,你看不到,你看不 到,你看不到 … XD 所以,就算 A 設計了個 public 的 getA,B 也只知道他繼承了個 getA 方法,不可 能知道也不該知道 getA 是不是取得了 private 的 field a,也許 getA 裏頭是取得 了 private 的 b,或者是算出了一個別的值給 B 也說不一定,沒有原始碼,繼承的 類別視為黑箱下,怎麼會曉得這種事呢? 物件導向的問題,有時用兩個人以上分工的角度來看,會比較清楚…XD -- 良葛格學習筆記 http://openhome.cc -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.118.88 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1405898364.A.F01.html ※ 編輯: JustinHere (117.19.118.88), 07/21/2014 07:22:24
pzyc79:這種東西太基礎(封裝、繼承、多型)我也很懶的回 辛苦你了 07/21 07:49
lovdkkkk:推 07/21 09:18
kiwatami:是這樣沒錯 這也是為何要用private修飾的原因 07/21 20:56
kiwatami:但這樣看起來 "繼承" 其實並不是繼承 07/21 20:57
kiwatami:而是指我開放權限讓你存取的意思 那為何不用擴充解釋呢? 07/21 20:58
pzyc79:繼承不是開放成員的存取權限 是直接獲得喔 07/21 21:04
luoqr:因為spec是人訂出來的 追根究底和鑽牛角尖是不一樣的事 07/21 22:53
luoqr:繼承字眼從C++開始就一直有了 大家也都習慣了 為何要用擴充? 07/21 22:55
luoqr:繼承在你的理解和別人不一樣 不代表他就不適合被使用 07/21 22:57
luoqr:100人有99人都覺得是這意思 那它就是這意思了 這很現實 07/21 23:02
NewSpec:這讓我想到ant的target和gradle的task XD 07/22 00:06