→ sCHb68: 在 class C 正確用一個 super , 12/19 12:31
→ sCHb68: 然後在 class B 再使用 super 不知能否解決原PO問題。 12/19 12:31
→ egheee: 我就是想要跳過B直接call A的,這樣的方式會連B一起call到 12/19 14:06
推 gpctv: 那為何不直接在C建立物件就可直接call C的tell方法啦?! 12/19 14:55
推 gpctv: 不曉得這樣你懂不懂我的意思 12/19 14:58
→ ssccg: class封裝來說,繼承就是取得parent的非private的member 12/19 15:04
→ ssccg: 但是parent又去繼承了什麼東西是parent class的實作細節 12/19 15:04
→ ssccg: child class知道parent有tell(),但不該知道parent的第幾層 12/19 15:05
→ ssccg: parent有個tell(),那不是由繼承能使用的介面 12/19 15:05
→ ssccg: 你想跳過B這件事就有問題了,C本來就不該知道B是繼承了什麼 12/19 15:07
→ ssccg: C只知道B提供什麼,不知道那是B自己實做還是繼承來的 12/19 15:08
推 Peruheru: 所以你如果要A的什麼,你應該是去繼承A,而不是繼承B 12/19 15:08
→ Peruheru: 不然就是B當初設計就要為A的tell()另外提供一個方法 12/19 15:10
→ Peruheru: 比如說tellbyA之類的 12/19 15:11
→ Peruheru: B表示:朕不給的,你不能要 12/19 15:11
→ swpoker: has is use 12/19 15:14
推 gpctv: 樓上說的其實很有道理,但是你硬要這樣做那就建立物件吧! 12/19 15:36