Drodzy użytkownicy języka Java, powiedzmy, że istnieje kod, w którym nadpisana jest metoda w odziedziczonej klasie:
class Pet { String name; String age; String getString() { return "Домашнее животное"; } } class Cat extends Pet { String getString() { return "Кот Рыжик"; } } public static void main(String[] args) { Pet cat = new Cat(); cat.getString(); }
powiedzcie mi, która wersja metody getString() zostanie wywołana dla zmiennej cat? Czytałem na wykładach, że metody obiektu można wywoływać tylko wtedy, gdy są one obecne w klasie, która została użyta jako typ referencyjny do obiektu, niezależnie od faktycznego typu obiektu. Czy to oznacza, że w tym przypadku zostanie wywołana metoda z klasy Pet, czy też w przypadku nadpisania metody zostanie wywołana metoda z klasy obiektowej? Dziękuję.
GO TO FULL VERSION