мы знаем, что частное поле не наследуется, и когда я создаю объект в строке №2, объект создается для Person, а затем, когда я устанавливаю FatherName внутри setFatherName(), как **этот ** "который является объектом person" имеет видимость для установки частного FatherName тестового класса?
abstract тест класса {
частный Строка FatherName ;
Код: Выделить всё
public void setFatherName(String fatherName){
System.out.println(this.getClass().getSimpleName());
this.fatherName=fatherName;
}
public String getFatherName(){
return fatherName;
}
Код: Выделить всё
public static void main(String[] args) {
Test person = new Person(); // #2
person.setFatherName("Jimmy");
System.out.println("father name is : " +person.getFatherName());
}
Вывод:
Человек
имя отца: Джимми
Я понимаю контекст, в котором я косвенно делаю это с помощью установщика, но как ключевое слово «this» работает здесь, в абстрактном классе, поскольку объект — это Person . Сделал все возможное, чтобы задать вопрос точно.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ract-class