У меня есть класс
public class A {
public String attr ="A attribute";
public void method() {
System.out.println(this+" , "+this.attr);
}
public String toString() {
return("Object A");
}
}
и другой класс, который наследует от него
public class B extends A{
public String attr = "B attribute";
public void method() {
super.method();
}
public String toString() {
return("Object B");
}
}
Обратите внимание, что method()
из B
- это просто оболочка для method()
из A
Когда я запускаю следующий код
B b = new B();
b.method();
Я получаю Object B, A attribute
качестве вывода, что означает, что this
и this.attr
обращались к разным вещам. Почему это так?
System.out.println(this)
ссылаться на метод toString()
класса A
?