java中的method override和variable hide
昨天跟朋友讨论到一个有趣的问题:java中variable有没有override?
真是惭愧啊,到现在才知道原来java中的override只是针对method来讲的,对于变量是hide.
闲言少叙,先上两段代码:
public class Sub extends Base{ public int x=2; public void echo(){ System.out.println(x); }public static void main(String[] args) {Sub sb=new Sub();Base bs=new Base();sb.echo();bs.echo();System.out.println(bs.x+""); System.out.print(sb.x+"");}}?呵呵,结果是:
2
1
1
2
?
不过话说回来,我觉得除非真的被逼无奈,不然不要在一个hierachy下面定义名字重复的变量,否则很容易出现“潜伏”的问题。
?