У меня есть класс
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?