Re: [问题] private继承问题

楼主: zanyking (最后的六年级生)   2014-07-23 12:23:18
※ 引述《kiwatami (悠游自在)》之铭言:
我想我对继承的理解跟你是比较接近的。
我自己是从2个事实与几个经验去理解继承:
1. 继承的时候,sub class会从super class 既有的member context上再去叠加
自己的东西。
2. sub class 要存取super class的东西得通过修饰判定,标为private的不给用。
我的经验:
1. 以前为了写一个light weight container 的东西,所以得根据annotation
runtime改POJO的private member field。
2. 曾经为了对付一个我动不了src的第三方程式库里的bug,reflection下去dirty patch
3. 玩 java iunstrumentation,偷改class定义套proxy做我自己的事情。
4. IDE Debugger 要追状态是不是正确的时候
也就是‘继承’这个名词的解释,可以是从什么观点看过去的问题。
从物件导向的角度去看‘继承’这个字词的定义:
看不见、不能用的就是没有‘继承’到,所以没有继承。
回到super class 的private a1,sub class 虽然继承了super class,但sub class
并没有继承a1。
a1是super class的,sub class 呼叫getA1()的时候,是透过getA1()这个跟
super class 继承来的方法存取super class所持有的a1。
从内存使用、资料结构的角度(简单说就是把‘封装’的概念丢掉)去看super class
、sub class的关系:
runtime 的时候debugger 开起来,这个sub class我就是有看到super class的 member
field啊。不过是‘标记’为‘private’而已,我真想用、硬改还不是一样可以?
不晓得这样有没有回答到?
作者: lovdkkkk (dk)   2014-07-23 14:43:00
子 = 父的下面黏了一坨东西 感觉有点恶 XD
作者: kiwatami (悠游自在)   2014-07-25 20:51:00
谢谢! 这就是我想知道的答案

Links booklink

Contact Us: admin [ a t ] ucptt.com