标签:android blog http io ar java sp div on
Android的开发者对@Override肯定是非常熟悉,不管是自己的代码中还是书上都会出现,但是他是什么意思呢?如下:
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)
public class Sales extends Employee{ //子类除了具有父类的一些属性,也可以有自己的一些属性 private String msn; public Sales(String mobile,String msn) { super(mobile); this.msn = msn; } @Override public String showMess() { return super.showMess()+"==msn:"+this.msn; } }
注意这时被覆盖的showMess方法的访问级别是public,可以被任何其他对象访问到。
public class Parent { private int num(int i,int j){ return i+j; } public static void main(String[] args) { Parent p = new Child(); System.out.println(p.num(1, 2)); } } class Child extends Parent{ public int num(int x,int y){ return x-y; } }
这段代码的执行结果为什么呢?如果你回答-1则错了,正确答案是3。
为什么呢?因为父类的num方法是private的,所以不能被覆盖,所以子类的num方法不是一种Override,因此在子类找不到被覆盖的num方法就会执行父类的num方法。所以结果输出为3.
标签:android blog http io ar java sp div on
原文地址:http://www.cnblogs.com/NKlaus/p/4066490.html