重写
重写就是子类重写父类的方法
特点:
- 方法名必须相同
- 参数列表必须相同
- 修饰符范围可以扩大但不能缩小,例如父类的方法修饰符是protected 那么子类重写这个方法时修饰符就可以为public(private<protected<dewault<public)
- 抛出的异常可以缩小不能扩大
- final,private,static修饰的方法不能重写。
- 重写不能重写静态方法
- 重写后的方法不能static修饰
重写父类的方法子类必须要保持一致,方法体是不同的
重写的用处
- 父类的功能子类不一定需要或者不一定满足
代码示例
例如在A类这个父类中写了一个test方法,方法体为输出了一个A。在B类也写了一个test方法 方法体输出了一个B,B类继承A类
//A类
public void test(){
System.out.println("A")
}
//B类
public void test(){
System.out.println("B")
}
在主程序中创建A类的实例对象 和创建使用A类引用数据指向B类对象
A a=new A();
a.test();
//父类的引用指向了子类,向上转型
A b=new B();//子类重写了父类的方法
b.test();
输出结果为:
A
B