继承

Java只有单继承!!!

 

子类的无参构造函数,第一句隐藏了父类的无参构造函数:super()

 

super注意点:

  1. 子类中用super调用父类的构造方法,必须在构造方法的第一行

  2. super必须只能出现在子类的方法或者构造方法中

  3. super和this不能同时调用构造方法,因为this和super都需要在第一行

     

    vs this: 代表的对象不同: this:本身这个类

    super:父类

    前提:

    this:没有继承也可以使用

    super:只能在继承中才可以使用

    构造方法:

    this() 本类的构造方法

    super() 父类的构造方法

    重写

    重写:需要有继承关系,子类重写父类的方法!

    1. 方法名必须相同

    2. 参数列表必须相同

    3. 修饰符:范围可以扩大但不能缩小: public>protected>default>private

    4. 抛出的异常:范围可以缩小但不能扩大 ClassNotFoundException->Exception

重写,子类的方法和父类必须要一致,方法体不同!

为什么要重写? 父类的功能子类不一定需要,或者不一定满足。 Alt+Insert override

静态方法相同 看左边的类 A extends B A a = new A() B b = new A() a.test()是A中的方法 b.test()是B中的方法 (test是静态的)

非静态方法相同 看右边的对象即子类 A extends B A a = new A() B b = new A() a.test()是A中的方法 b.test()是A中的方法(非静态)

 

多态

注意事项:

  1. 多态是方法的多态,属性没有多态

  2. 父类和子类,有联系 ,否则出现类型转换异常!ClassCastException

  3. !!!存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f = new Son()

    (如果是子类特有的方法,父类引用子类对象是访问不了子类的特有方法的-> 能不能调用方法看左边的类,和右边的对象无关,当重写时都调用子类的重写方法)

 

不能重写的情况:

  1. static 方法,属于类,它不属于实例

  2. final 常量

  3. private方法

posted on 2021-03-06 21:08  禅逸  阅读(61)  评论(0)    收藏  举报