首页 > 代码库 > java继承

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继承