-
在 son apple = new son();的时候
-
我们知道apple是个对象的引用变量,由它指向一处对象的内存
-
而这个对象我们把它命名为OX11
-
在OX11的内部,还有几块内存
-
分别是爷爷,爸爸,和儿子的
-
爷爷和爸爸的除构造器外的一切属性和方法都可以由儿子继承
-
但是他们中间的private变量不能直接由儿子调用
-
因为private类只能在本类中调用,而son是子类,所以不能直接调用
-
那到底有没有继承呢?
-
有!必须有!
-
只是能不能访问的问题,面对这个访问的问题,我们运用常规方法,在private的类中构造public的get方法,再由子类调用get方法就可以了
-
再说说子类的对象引用查找数据的顺序
-
还是这张图
-
关于有关数据的查找是自下而上的
-
因为我们调用的是son
-
所以我们先查找son有没有我们指定的属性和方法
-
因为我们每创建一个子类,ide就会在子类的内存里把子类的至object的父类全都载入,所以如果子类没有,就往上找。
-
直到找到我们需要的东西
-
这也解释了什么是覆盖,子类父类都有,名称一样的东西,由于我是子类,我比你要先找,所以系统找到我了就不会再找你了
-
这样父类的方法就被覆盖了