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