9月12日 自学问题

1.再类的多个构造器中,至少有一个类的构造器使用类super(行参列表),调用父类的构造器,在构造器的第一行

  在第一行的原因:子类继承父类,继承父类的属性和方法,因此子类必须知道父类如何对对象进行初始化

2.super调用父类的方法或属性(属性 或 方法重名是使用),一般用于方法重写中调用

3.多态性:虚拟方法的使用    (接口 中 应用) 多态性new的一定是A的子类(直接子类或者间接子类都行)   A = new a

  多态性使用条件:要有继承关系、要有方法的重写

4.对象的多态性只适用于方法,不适用于属性(编译和运行都看左边)

5.多态是运行时行为

6.重载和重写

  1)具体细节的差距

  2)方法的重载在编译器就确定了要调用的方法:静态绑定、早绑定

    方法的重写只有在方法调用的那一刻才确定要调用的方法:动态绑定、晚绑定 (重写可以多态)

  3)方法的重写 

     子类方法名和行参列表和父类一样,

     子类修饰符大于等于父类

    子类返回值等于父类,或是父类的子类型(父类返回值为void时,子类也是void)

javase学完自己画思维导图

7.有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型, 导致编译时只能调用父类中声明的属性和方法,子类中特有的属性和方法不能调用

  调用子类特有的属性和方法:强转(类型)

  为了避免强转错误 使用 instanceof进行判断  if(a instanceof A)  {} 如果判断是true则执行强转

  如果 a instanceof A 返回true,a instanceof B也返回true,则类B是类A的父类

8.实例变量中,子类和父类定义了相同的实例变量(属性),这个实例变量不会覆盖父类中定义的实例变量   编译运行都看左边  

  

 

posted @ 2020-09-12 23:12  accelerateInvolute  阅读(111)  评论(0)    收藏  举报