文章目录
前言
前文介绍了接口和抽象类,两个中间都有一个很关键的概念,叫方法重写,本文简单介绍一下方法重写。
一、方法重写是什么?
Java方法重写(Method Overriding)是指在子类中定义与父类中同名的方法,但具体实现内容不同。当子类调用该方法时,会执行子类中的方法覆盖父类中的方法。换而言之就是,我不想使用父类中方法的内容,因此在子类中重新,改变方法中的内容。
格式为:
修饰符 返回类型 方法名(参数列表) {
// 子类方法的具体实现
}
二、方法重写的使用方法
方法重写的前提:
1.子类重写父类
2.方法签名与父类方法签名一样: 返回值一样, 方法名一样. 参数列表一样
子类重写父类的方法, 子类对象调用该方法,调用子类重写的方法,
如果子类没有重写父类的方法, 子类对象调用该方法, 调用从父类继承的方法
//重写父类的showInfo方法
public void showInfo() {
//调用父类的showInfo方法
super.showInfo();
System.out.println("我是一只"+this.type+"狗");
}
jdk提供了检查重写的方法是否正确, 提供了@Override注解, 加在子类重写父类方法上
(在实际开发中,使用idea自动生成, 重写父类方法。 快捷键: alt + insert,如果没用,需要同时按住Fn键 )
三、方法重写的注意点
- 重写方法必须与父类方法具有相同的名称、参数列表和返回类型。
- 重写方法不能拥有比父类方法更严格的访问修饰符。例如,如果父类方法是
public
的,那么子类中重写的方法也必须是public
,不能是protected
或private
。 - 重写方法不能拥有比父类方法更多的异常。如果父类方法抛出了异常,那么子类重写的方法可以抛出相同的异常或其子类异常,或者不抛出异常。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了方法重写的使用,具体请在代码中查看详情。