Dlaczego tak
Zmienna z ma typ Zwierze, ale wskazuje obiekt klasy Pies, a w Javie metody instancyjne są wiązane dynamicznie: o wyborze wersji glos() decyduje rzeczywista klasa obiektu, więc wypisane zostaje „Hau”. Wywołanie różnych implementacji tej samej metody przez wspólny typ bazowy to polimorfizm. Odpowiedź „...” zakłada, że decyduje typ zmiennej, co w Javie dotyczy tylko metod statycznych i pól.