Prezados Java, digamos que haja um código no qual um método em uma classe herdada é substituído:
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(); }
por favor, diga-me qual versão do método getString() será chamada para a variável cat? Li nas palestras que você só pode chamar métodos de um objeto se eles estiverem presentes na classe que foi usada como tipo de referência para o objeto, independentemente do tipo real do objeto. Isso significa que neste caso o método da classe Pet será chamado, ou no caso de substituição do método, o método da classe do objeto será chamado? Obrigado.
GO TO FULL VERSION