java继承的内存本质

  • 在 son apple = new son();的时候

     

  • 我们知道apple是个对象的引用变量,由它指向一处对象的内存

  • 而这个对象我们把它命名为OX11

  • 在OX11的内部,还有几块内存

  • 分别是爷爷,爸爸,和儿子的

  • 爷爷和爸爸的除构造器外的一切属性和方法都可以由儿子继承

  • 但是他们中间的private变量不能直接由儿子调用

  • 因为private类只能在本类中调用,而son是子类,所以不能直接调用

  • 那到底有没有继承呢

  • 有!必须有!

  • 只是能不能访问的问题,面对这个访问的问题,我们运用常规方法,在private的类中构造public的get方法,再由子类调用get方法就可以了

  • 再说说子类的对象引用查找数据的顺序

     

  • 还是这张图

     

  • 关于有关数据的查找是自下而上的

  • 因为我们调用的是son

  • 所以我们先查找son有没有我们指定的属性和方法

  • 因为我们每创建一个子类,ide就会在子类的内存里把子类的至object的父类全都载入,所以如果子类没有,就往上找。

  • 直到找到我们需要的东西

  • 这也解释了什么是覆盖,子类父类都有,名称一样的东西,由于我是子类,我比你要先找,所以系统找到我了就不会再找你了

  • 这样父类的方法就被覆盖了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值