赞
踩
重写、也被称作覆盖、英文名为Override,它是面向对象程序设计中非常重要的思想,什么时候该用重写?怎么重写?这都需要一点点经验哦!今天我们一起学习重写!
要想重写某个方法,最重要的前提是需要有继承关系的存在,子类中重写父类的方法,或者子类重写接口中的方法
先看一个重写父类方法的demo吧
- public class Dog extends Animal{
-
- @Override
- public void eat(){
-
- }
-
- }
再来看一个重写某个接口的抽象方法
- public class Dog implement Action{
-
- @Override
- public void jump(){
-
- }
-
- }
方法名称相同
参数列表相同
返回值类型相同或者是子类型
方法的访问权限相同或者更大,final修饰的方法不能重写
private修饰的方法不能被重写
静态方法不存在重写(根据调用方的类决定调用哪个静态方法)
public class Dog implement Action{
@Override
public void jump(){
}}
class Animal{
public void eat(){
System.out.print("吃");
}
}
父类的功能,完全推翻,自己来实现
public class Dog extends Animal{
@Override
public void eat(){
System.out.print("用嘴玩命吃东西");
}}
在父类的功能之上,再添加新的功能,先调用父类父类的方法,此时用到了super关键字
@Override
public void eat() {
super.eat();
System.out.print("东西");
}
在父类的功能之上,再添加新的功能,后调用父类父类的方法,此时用到了super关键字
@Override
public void eat() {
System.out.print("用嘴");
super.eat();
}
更好的复用代码,子类也许只跟父类的一个方法实现逻辑不同,其他的方法都是相同的,此时继承父类,重写其方法。学习面向对象,避免不了重写一个方法呀!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。