java继承
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java继承相关的知识,希望对你有一定的参考价值。
1.不要为了使用另一个类中的某一个方法去继承,比如demoB中不能有show2()方法,就不能去继承,很可能是兄弟关系而不是父子关系。
2.当成员变量与函数内变量重名时,如何调用成员变量。另外,子类有的成员变量不访问父类。
3.super
当子类成员变量和父类成员变量重名时,想访问父类的成员变量,用关键字super。
4.打印this 和 对象 都是对象的地址(若把this改成super 则会出错)
5.第4 的原因,t只创建子类对象,没有创建父类的对象,所以不能打印。但是this可以访问父类空间里的东西,因为子类持有父类空间的指向。
6.子类只能访问父类中除了private之外的 其他东西,可以通过父类非私有方法去访问父类私有成员。
7.问题:6中子类有没有继承父类的num?
有
8.6中num在内存里面的位置
内存加载的时候会先将父类进行加载
子类的内存空间中会持有一个super,这个super指向父类。
子类能使用的方法区空间至少两片。但是在堆中,能使用的空间只有一个,所以父类的属性在子类创建对象的堆的空间里都有。
凡是子类借过来的属性,都在子类的堆内存区中。
私有只是代表不能访问,不代表它不存储。
所谓的私有在内存里面只是一个数字标识在表示。
子类创建的堆里父类和子类各自的成员变量会有标识,重名不影响。
以上是关于java继承的主要内容,如果未能解决你的问题,请参考以下文章