【强制】所有的覆写方法,必须加@Override注解

更新时间:2023-07-23 03:02:17 阅读: 评论:0

【强制】所有的覆写⽅法,必须加@Override注解
济南动物园阿⾥的Java开发⼿册中将加@Override 注解规定为强制,其相应说明如下:getObject()与 get0bject()的问题。⼀个是字母的 O,⼀个是数字的 0,加@Override可以准确判断是否覆盖成功。另外,如果在抽象类中对⽅法签名进⾏修改,其实现类会马上编译报错
合适的⼦类与⽗类有符合覆写规定的⽅法时,不加@Override 注解,也是能够覆写的,但是在实际使⽤时可能会产⽣⼀些疑问,到底是调⽤⽗类的⽅法还是⼦类覆写后的⽅法呢。⽽加上注解能增加代码的可读性,看到标签就知道这是从⽗类重写的⽅法,在调⽤时也将调⽤重写后的⽅法。并且使⽤@Override可以准确判断是否覆盖成功。
⽽⼦类能否覆写⽗类⽅法,对⼦类和⽗类的⽅法也是有相关规定的。
覆盖/覆写(override)是指⼦类可以覆盖⽗类的⽅法,因此同样的⽅法会在⽗类和⼦类中有着不同的表现形式。(参数列表相同)返回值和抛出的异常都与⽗类⽅法中保持⼀致。
⼦类要想覆写⽗类的⽅法,除了⽅法名和参数列表⼀样之外,还有以下的注意事项。
关键点
1.被覆盖⽅法的访问控制级别可以不⼀样。
例如上例⽗类的show⽅法的访问级别为protected的,⽽⼦类覆盖的show⽅法访问级别则为public的。
但⼦类的访问级别必须要⾼于⽗类被覆盖⽅法的访问级别,如果⽗类是public的⽽⼦类是protected的则是错误的。
2.⽅法被定义为private或static或final的则不能被覆盖。
3.⽅法的返回类型。
覆写的⽅法名称,返回类型,参数及类型必须⼀致。这⾥,返回类型其实可以不⼀样,但类型有限制。
⼦类的返回类型可以是更具体的对象,例如可以将Employee类的返回类型改为Object也正确。⽽倒过来则错误。
4.在⽅法调⽤时先会在⼦类中找覆写的⽅法,如果⼦类中没有则会在⽗类中去找。
代码⽰例:
⽗类——车辆类
* 车辆类
*
*/
public class Car {
public int wheel = 4;
public int pasngers = 5;垃圾分类画画
protected void show() {
System.out.println("wheel is :" + wheel + "; pasngers is " + pasngers);    }
private void showName() {
System.out.println("car");
}
public void showPrivate() {
System.out.println("car is private");
}
public static void main(String[] args) {
Car car = new MiniCar();
car.show();
car.showName();
car.showPrivate();
//⼦类新增⽅法不能够通过⽗类去调⽤
//car.showPrivate("1");
}
}
⼦类——⼩型车辆类
* ⼩型车辆类
*
*/
public class MiniCar extends Car{
public int pasngers = 2;
/**
* ⽗类⽅法不⽤private或static或final修饰,则是能被覆写的
*/
@Override
回到初相恋public void show(){
System.out.println("wheel is :" + wheel + "; pasngers is " + pasngers);    }
/**
* ⽗类⽅法使⽤private修饰,不能被覆写的,加@Override则会报错
*/坐月子能吃啥水果
打棒球的英文public void showName(){
System.out.println("mini car");
}
/**
* ⽅法名和返回值⼀样,但是参数列表不⼀样,这是⼦类新增⽅法
* 实际应⽤中应避免此写法,容易引起误解
* @param pasngers
*/
public void showPrivate(String pasngers) {
幼儿老师
System.out.println("mini car  is private,pasngers is " + pasngers);
}
/**
* ⼦类⾃⼰的⽅法,需要⼦类对象接收才能调⽤
*/
public void showPublic() {
System.out.println("mini car is public");
}
}
运⾏结果如下:
wheel is :4; pasngers is 2
car
car is private
其中若⽗类中showName⽅法的修饰符为public,那么输出结果将为:
wheel is :4; pasngers is 2人性的电影
mini car
car is private

本文发布于:2023-07-23 03:02:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1092793.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   覆写   覆盖   参数   注解
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图