Условие задачи:
Переопредели метод setName в классе Cat так, чтобы программа выдавала на экран надпись «Я - кот».
Код задачи:
public class Solution {
public static void main(String[] args) {
Pet pet = new Cat();
pet.setName("Я - пушистик");
System.out.println(pet.getName());
}
public static class Pet {
protected String name;
public Pet() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static class Cat extends Pet {
}
}
Я переопределила метод setName в классе Cat с использованием super.name = ...
В правильном решении используется this.name. Но почему? Это же класс-наследник, а мы обращаемся к полю класса-родителя