Witam, drodzy Javaraszyci. Z pewnością każdej osobie, z którą przeprowadzono wywiad, zadano pytanie dotyczące polimorfizmu. Interesuje mnie zatem Twoja odpowiedź i ocena Twojej odpowiedzi przez osobę przeprowadzającą rozmowę kwalifikacyjną. Odbyłem 2 miniwywiady, podczas których pytano o polimorfizm i na każdej z nich osoba przeprowadzająca wywiad nie była zadowolona z mojej odpowiedzi. Krótko mówiąc, moja odpowiedź sprowadzała się do zastąpienia i przypisania odwołania do klasy nadrzędnej do obiektu klasy podrzędnej. Coś takiego:
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!
Dokładnie to jest napisane na stronie internetowej Oracle . Ivan Golovach mówi, że polimorfizm w Javie realizowany jest za pomocą dziedziczenia (co pokazałem w przykładzie) i przy użyciu typów generycznych. Gdzie więc jest prawda i jak odpowiadać na rozmowie kwalifikacyjnej? Niedługo mam ważną rozmowę kwalifikacyjną i nie chcę znowu schrzanić tej pozornie podstawowej kwestii.
GO TO FULL VERSION