欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-08 07:59:01
...
违反人类直觉,违反软件开发初衷的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。

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