JAVA中 @Override 的作用
2016-11-15 18:52
260 查看
最近在做项目,经常会出现interface的上层impl类出现未实现类方法错误,或者出现实现方法不正确错误。
特此总结下@Override的作用
● 方便读码(告诉读代码的人,这是一个复写的方法)
● 验证作用(验证@Override下面的方法名是否是你父类中所有的,如果没有则报错)
第15行-22行的代码如果都去掉了@Override这样编译就不会出错,但是这样3个方法却不是重写方法,而是在子类追加的新的方法。
第29行:静态的方法可以被继承,但是不能重写。
最近在总结rivate和重写相关,越发的感觉JAVA在OO上面的多态和封装的好处。
Private 方法只作用域当前class内部,外部无法被使用,更好的得到保护以及更有利于今后的重构。
想到之前有个大牛面试问题:Public和Private的本质区别是什么?
--成本高与低的区别,当我最近做项目和回顾Javaskill的时候突然秒懂了这个答案。
静态的方法可以被继承,但是不能重写。
我的另一篇相关文章:Java重写的7个规则
特此总结下@Override的作用
● 方便读码(告诉读代码的人,这是一个复写的方法)
● 验证作用(验证@Override下面的方法名是否是你父类中所有的,如果没有则报错)
package com.ibm.dietime1943.test; public class Father { public void doFather(){} private void doFather2(){} final void doFather3(){} static void doFather4(){} } class Son extends Father{ @Override public void doFather(){} @Override public void dofather(){} // compilation error: 方法名书写错误,父类中没有 dofather()方法 @Override private void doFather2(){} //compilation error: 父类方法为private类型,无法被重写 @Override final void doFather3(){} //compilation error: 父类方法为final类型,无法被重写 @Override static void doFather4(){} //compilation error: 父类方法为static类型,无法被重写 }
第15行-22行的代码如果都去掉了@Override这样编译就不会出错,但是这样3个方法却不是重写方法,而是在子类追加的新的方法。
第29行:静态的方法可以被继承,但是不能重写。
最近在总结rivate和重写相关,越发的感觉JAVA在OO上面的多态和封装的好处。
Private 方法只作用域当前class内部,外部无法被使用,更好的得到保护以及更有利于今后的重构。
想到之前有个大牛面试问题:Public和Private的本质区别是什么?
--成本高与低的区别,当我最近做项目和回顾Javaskill的时候突然秒懂了这个答案。
静态的方法可以被继承,但是不能重写。
我的另一篇相关文章:Java重写的7个规则
相关文章推荐
- Java中@Override的作用
- Java @Override的作用
- Java中@Deprecated、@SupressWarning、@Override的作用
- Java中@Override的作用
- Java中@Override的作用
- @override在JAVA中的作用
- Java中@Override的作用
- (转载)Java中@Override的作用
- Java 中 @override的作用
- java @Override的作用
- Java中@Override的作用
- JAVA中 @Override 的作用
- Java中@Override的作用
- JAVA中 @Override 的作用
- Java中@Override的作用
- Java中@Override的作用
- Java中@Override的作用
- JAVA中 @Override 的作用
- Java中@Override的作用
- java @Override的作用