方法的重写指都一个子类,去复写父类的方法,其父类的方法能被其子类访问.
方法重写的注意事项:
- 重写的方法必须要和父类一模一样(包括返回值类型,方法名,参数列表);
- 重写的方法可以使用@Override注解来标识;
- 访问权限不能严于父类
- 父类的静态方法不能被重写为非静态方法,反之父类的非静态方法不能被重写为静态方法
- 子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(静态方法中无法使用super、this)
- 父类的私有方法不能被子类重写(private修饰的)
- 不能抛出比父类更多的异常
- 子类根据需求从父类继承的方法进行重新编写
- 重写是,可以使用super.方法的方式来保留父亲的方法
- 构造方法不能被重写
权限修饰符 : private < 默认(什么都不写 default) < protected < public
静态方法中不能使用super、this关键字,this指向本类中已存在的对象,super是对父类对象的引用,指向父类对象,而静态方法是优先于对象的,所以在静态方法中使用super、this时,由于指向的对象晚于静态方法出现,所以指向的是啥也没有
为什么要重写方法:
- 当父类中的方法无法满足子类需求的时候,需要方法重写
- 当子类具有特有的功能的时候,就需要方法重写
重写的应用
子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。