作者JustinHere (良葛格)
看板java
标题Re: [问题] private继承问题
时间Mon Jul 21 07:19:21 2014
以下浅见…
有 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://webptt.com/cn.aspx?n=bbs/java/M.1405898364.A.F01.html
※ 编辑: JustinHere (117.19.118.88), 07/21/2014 07:22:24
1F:→ pzyc79:这种东西太基础(封装、继承、多型)我也很懒的回 辛苦你了 07/21 07:49
2F:推 lovdkkkk:推 07/21 09:18
3F:推 kiwatami:是这样没错 这也是为何要用private修饰的原因 07/21 20:56
4F:→ kiwatami:但这样看起来 "继承" 其实并不是继承 07/21 20:57
5F:→ kiwatami:而是指我开放权限让你存取的意思 那为何不用扩充解释呢? 07/21 20:58
6F:推 pzyc79:继承不是开放成员的存取权限 是直接获得喔 07/21 21:04
7F:→ luoqr:因为spec是人订出来的 追根究底和钻牛角尖是不一样的事 07/21 22:53
8F:→ luoqr:继承字眼从C++开始就一直有了 大家也都习惯了 为何要用扩充? 07/21 22:55
9F:→ luoqr:继承在你的理解和别人不一样 不代表他就不适合被使用 07/21 22:57
10F:→ luoqr:100人有99人都觉得是这意思 那它就是这意思了 这很现实 07/21 23:02
11F:→ NewSpec:这让我想到ant的target和gradle的task XD 07/22 00:06