Estimados usuarios de Java, digamos que hay un código en el que se anula un método de una clase heredada:
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, díganme qué versión del método getString() se llamará para la variable cat. Leí en conferencias que puedes llamar a métodos de un objeto sólo si están presentes en la clase que se usó como tipo de referencia para el objeto, independientemente del tipo real del objeto. ¿Significa esto que en este caso se llamará al método de la clase Pet o, en el caso de anular el método, se llamará al método de la clase de objeto? Gracias.
GO TO FULL VERSION