Re: [問題] private繼承問題

作者: JustinHere (良葛格)   2014-07-21 07:19:21
以下淺見…
有 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
作者: pzyc79   2014-07-21 07:49:00
這種東西太基礎(封裝、繼承、多型)我也很懶的回 辛苦你了
作者: lovdkkkk (dk)   2014-07-21 09:18:00
作者: kiwatami (悠游自在)   2014-07-21 20:56:00
是這樣沒錯 這也是為何要用private修飾的原因但這樣看起來 "繼承" 其實並不是繼承而是指我開放權限讓你存取的意思 那為何不用擴充解釋呢?
作者: pzyc79   2014-07-21 21:04:00
繼承不是開放成員的存取權限 是直接獲得喔
作者: luoqr (.....)   2014-07-21 22:53:00
因為spec是人訂出來的 追根究底和鑽牛角尖是不一樣的事繼承字眼從C++開始就一直有了 大家也都習慣了 為何要用擴充?繼承在你的理解和別人不一樣 不代表他就不適合被使用100人有99人都覺得是這意思 那它就是這意思了 這很現實
作者: NewSpec (新規格)   2014-07-22 00:06:00
這讓我想到ant的target和gradle的task XD

Links booklink

Contact Us: admin [ a t ] ucptt.com