1.什么时候需要用到重写?
答:父类的功能无法满足子类的需求时,则需要用到重写;
2.重写有什么好处?
答:重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。
3.重写有什么要求?
答:
- 参数列表必须完全与被重写方法的相同;
- 返回类型必须完全与被重写方法的返回类型相同;
- 访问权限不能比父类中被重写的方法的访问权限更低;
- 声明为final的方法不能被重写;
- 声明为static的方法不能被重写,但是能够被再次声明;
- 构造方法不能被重写;
- 子类和父类在同一个包中,那么子类可以重写父类所有除了声明为private和final 的方法;
- 如果不能继承一个方法,则不能重写这个方;
- 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和 protected的非final方法;
- 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是, 重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性 异常,反之则可以。
例:新建一个brid类:
package com.java.wenxian;
public class brid {
//--方法
public void fly(){
System.out.println("鸟可以飞!");
}
}
新建wlk并继承brid
package com.java.wenxian;
public class wlk extends brid{
// 重写fly方法
public void fly() {
//super.notify();
System.out.println("鸵鸟不能飞!");
}
}
package com.java.wenxian;
public class Demo2 {
public static void main(String[] args) {
//实例化
wlk wlk1 =new wlk();
wlk1.fly();
}
}
结果为:
鸵鸟不能飞!