public class A{
private String owner;
public String getOwner(){
return owner;
}
public void setOwner(String owner){
this.owner = owner;
}
}public class B extends A{
private String b;
public String getB(){
return b;
}
public void setB(String b){
this.b = b;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.getOwner() + " " + b;
}
}public static void main(String[] args){
A a = new A();
a.setOwner("lily");
B b = new B();
b.setB("xx");
System.out.print(b);
}输出时,实例b的getOwner()为什么为null;?
如果在类A中定义private String owner="lily";实例b的getOwner()就会得到lily;
值啊。 public static void main(String[] args){
A a = new A();
a.setOwner("lily");
B b = new B();
b.setB("xx");
//加下面的赋值方法,就没问题了
b.setOwner(lily);
System.out.print(b);
}
a.setOwner("lily");这块语句,是new了一个父类A的对象,他不能直接被b拿到的
main中的A对象和B对象是木有关系的
除非b也调用setOwner(“lily“);
就能显示,即便这样A对象和B对象也没关系