为什么方法可以被覆盖,而属性不能?
2022-09-04 03:18:47
我有一个班级
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");
}
}
请注意,of 只是 的 包装器。method()
B
method()
A
当我运行以下代码时
B b = new B();
b.method();
我得到输出,这意味着,并访问不同的东西。为什么会这样呢?Object B , A attribute
this
this.attr
不应该参考类的方法吗?System.out.println(this)
toString()
A