面试的那些事
最近我有点倒霉,遇到了糊里糊涂的面试官!
昨天去新邮通信设备有限公司面试,笔试的第一题的代码大致如下
public class Test
{
/**
* @param args
*/
public static void main(String[] args)
{
new hero(5);
}
}
abstract class Parent1
{
int hp=1;
abstract void draw();
void Actor()
{
System.out.println("a");
draw();
System.out.println("b");
}
}
class hero extends Parent1
{
void draw()
{
int hp=1;
System.out.println("c"+hp);
}
public hero(int hp)
{
System.out.println("d"+hp);
}
}
输入以上程序的结果:
我虽然知道这是个陷阱题,但还是
写了 d5
在直接面试的时候他问为什么,我说虽然抽象类的子类实现了父类的抽象方法,但是程序在调用的时候根本没有调用哪个方法,所以只输出 hero();方法里面的内容;
他说我的java基础太差了,连这个最基本的都不知道,子类的构造函数在执行时先执行父类的方法,所以输出为:
a
c1
b
d
把我都搞懵了,我觉得怎么怪怪的啊,今天晚上特意试了一下,还是我的理解是对了,我怎么会遇见这样的面试官啊,自己都不懂还来面试别人啊。