Java 扯淡@Override
来源:互联网 发布:淘宝运营需要学美工吗 编辑:程序博客网 时间:2024/06/05 07:24
一,概述
有时候会很奇怪的发现哦,@Override这个注解有点不讲道理,有时候写它也没问题,不写他也没问题,都不会有错误或者警告信息。
对于天生喜欢抽象和联想的程序猿来说,很容易产生这样的联想,Override的意思不是覆盖么,加上@Override这个注解的意思应该是覆盖父类的方法吧,哈哈,天才!
然而不是的,用个例子说明下:
二,@Override用与不用,都会覆盖
不用的示例:
package org.maoge.annotationdemo;//用于演示的父类public class Father { public void sayHello(){ System.out.println("Father say hello"); }}package org.maoge.annotationdemo;//用于演示的子类public class Son extends Father{ //注意,此处覆写了sayHello,没用@Override,也没有任何错误提示和警告信息 public void sayHello(){ System.out.println("Son say hello"); } public static void main(String[] args) { Father son=new Son(); son.sayHello();//输出Son say hello,覆盖成功 }}
用的示例,父类不变
package org.maoge.annotationdemo;//用于演示的子类public class Son extends Father{ //注意,此处覆写了sayHello,用了@Override,同样没有任何错误提示和警告信息 @Override public void sayHello(){ System.out.println("Son say hello"); } public static void main(String[] args) { Father son=new Son(); son.sayHello();//输出Son say hello,同样覆盖成功 }}
三,实践是检验真理的唯一标准,@Override不是那么玩的
@Override并不是表示该方法去覆盖父类方法,而是仅仅提供一种提示功能,保证加了@Override肯定覆盖了父类的方法,以免程序猿觉得自己明明覆盖了,咋还有这种低级错误发生。说的太复杂,一个例子就清楚了。
package org.maoge.annotationdemo;public class Son extends Father{ @Override public void say_hello(){//报错:The method say_hello() of type Son must override or implement a supertype method System.out.println("Son say hello"); } public static void main(String[] args) { Father son=new Son(); son.sayHello();//输出Son say hello,同样覆盖成功 }}
到了展示英文功力的时候了,The method say_hello() of type Son must override or implement a supertype method
的意思是,这个叫say_hello的方法啊,它是Son类的方法啊,它啊,必须滴覆盖或者落实一个它老爸的方法。
到了这里就很明确了,用了@Override的方法,必然是一个覆盖了父类的方法,不然编译器都不让你过。儿子得保证把爸爸的技能学到手,心里有数才能出师。
阅读全文
0 0
- Java 扯淡@Override
- 扯淡
- 扯淡
- 扯淡
- 扯淡
- 扯淡
- 扯淡
- 扯淡
- 扯淡
- Java override
- java override
- java @override
- Java - override
- java @override
- Java: @Override must override a superclass method
- java overload与override
- override java编译出错
- Java @Override的作用
- QT5每日一学(五)QT布局管理器
- 存储过程
- Single Number解题思路
- Nginx总结
- uvalive5713(次小生成树)
- Java 扯淡@Override
- Vue2.0入门
- 常见排序算法的复杂度以及稳定性
- 图片轮播的功能实现
- 选择排序的递归算法
- 解决CentOS 7,ATI显卡,屏幕亮度调节问题
- Java编程实现文件编码转换
- C#基础(2)——字符操作
- 今年最新的30个Android库