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指向父类。

   子类能使用的方法区空间至少两片。但是在堆中,能使用的空间只有一个,所以父类的属性在子类创建对象的堆的空间里都有。

   凡是子类借过来的属性,都在子类的堆内存区中。

   私有只是代表不能访问,不代表它不存储。

   所谓的私有在内存里面只是一个数字标识在表示。

   子类创建的堆里父类和子类各自的成员变量会有标识,重名不影响。

9.zi()里面会有一个默认的super(),存在一个默认的隐式函数,先执行父类的,再执行子类的。

super()代表父类空间构造函数。this()代表本类构造函数。

10.子类在执行构造函数时会把父类的东西拿过来

11.


12

13,父类的构造函数里面也有默认的super()

14.如果子类的构造函数里面有this()它有调用父类构造函数吗super()吗?

    没有

15.继承的缺点

    打破了封装性

16.final修饰  的变量不可修改

    eg:  final x = 5; 不能再将 x =7;

17.类内的构造代码块执行结果

  

18.一个对象在内存中的产生过程(6,7,8都是隐式的)(很重要,详情http://www.jczhijia.com/CoursePay/14865.html)

原文地址:https://www.cnblogs.com/qianxinxu/p/5951331.html