super注意点
1.super调用父类构造方法,必须在构造方法的第一个
2.super只能出现在子类的方法或者构造方法中
3.super和this不能同时调用构造方法
vs this:
指代的对象不同:
this:指代当前对象的引用
super:指代当前对象的父对象的引用
前提不同:
this:可以直接使用
super:只能在继承条件下才能使用
构造方法:
this():父类的构造
super():本类的构造
重写
只和非静态有关,需要有继承关系,子类重写父类的方法,子类的方法和父类必须要一致,方法体不同
1.方法名必须相同
2.参数列表必须相同
3.访问级别的限制性一定不能比被重写方法的强,但可以比被重写方法弱:public>protected>default>private
4.重写方法一定不能抛出新的检查异常或比被重写的方法声明更广泛的异常;
重写的方法能够抛出更少或更有限的异常(被重写的方法声明了异常,但重写的方法可以什么都不声明)
5.不能重写的方法:
1.static方法,属于类,不属于实例
2.final
3.private方法
重写的原因:
父类的方法子类不一定需要,或者不一定满足
多态
1.多态是方法的多态,属性没有多态
2.需要有父类和子类之间的关系 (类型转换异常:ClassCastException!)
3.三要素:继承、重写、父类引用指向子类对象(父类型可以指向子类,但是不能调用子类独有的方法)
抽象类
1.不能new这个抽象类,只能靠子类去实现它
2.抽象类中可以写普通的方法
3.抽象方法必须在抽象类中
接口的作用
1.约束
2.定义一些方法,让不同的人实现
3.接口中默认的方法:public abstract
4.接口中的常量:public static final
5.接口不能被实例化,接口中没有构造方法
6.implements可以实现多个接口
7.必须要重写接口中的方法