你好,亲爱的爪哇人。当然,每个接受采访的人都被问到有关多态性的问题。所以,我对你的回答以及面试官对你的回答的评价很感兴趣。我进行了两次小型面试,他们询问了多态性,每次面试官都对我的回答不满意。简而言之,我的答案归结为覆盖父类的引用并将其分配给子类的对象。像这样的东西:
class Parent{
void saySomething(){
System.out.println("Parent!");
}
}
class Child1 extends Parent{
@Override
void saySomething(){
System.out.println("Child1!");
}
}
class Child2 extends Parent{
@Override
void saySomething(){
System.out.println("Child2!");
}
}
class Test{
public static void main(String[] args){
Parent p1 = new Parent();
Parent p2 = new Child1();
Parent p3 = new Child2();
p1.saySomething();
p2.saySomething();
p3.saySomething();
}
}
---------------
Output:
Parent!
Child1!
Child2!
这正是Oracle网站 上写的。Ivan Golovach说,Java 中的多态性是通过继承(我在示例中展示的)和泛型来实现的。那么,面试时真相到底在哪里,又该如何回答呢?我即将进行一次重要的采访,我不想在这个看似基本的问题上再次搞砸。
GO TO FULL VERSION