`
架构师
  • 浏览: 52693 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

围观某公司的Java面试题,多态方法调用

    博客分类:
  • java
阅读更多
违反人类直觉,违反软件开发初衷的Java面试题。


public class Super {
	private int i=10;
	public void execute(){
		System.out.println(i);
	}

	public static void main(String[] args) {
		Derived derived = new Derived();
		Super superr = derived;
		System.out.println("derived value:");
		derived.execute();
		System.out.println("super value:");
		superr.execute();
	}
}

public class Derived extends Super {
	private int i=20;
}



要求写出程序执行结果。

正确答案是
derived value:
10
super value:
10

但我当时写的答案是20, 20。

题目是典型的钻牛角尖。 我干嘛要声明一个子类的变量,然后又把它变成父类,又要调用父类的方法? 从来没见过这么搞的,就算实际中有,也是可读性差、可维护性差的写法,能做出这种题,只能说明是个应试型人才罢了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics