package com.easy.houserent;
public class A {
int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public void loop(){
A1 a1 = new A1();
a1.set();
System.out.println(a1.getNum());
// setNum(10);
// System.out.println(getNum());
}
```
package com.easy.houserent;
public class A1 extends A {
public void set(){
A a = new A();
a.setNum(10);
}
// public static void main(String[] args) {
// A1 a1 = new A1();
// a1.set();
// System.out.println(a1.num);
// }
}
public static void main(String[] args) {
A a = new A();
a.loop();
}
}
通过这段代码我想完成的事情是:通过子类中的方法去修改父类的 属性值 然后再在父类写一个方法,调用子类中的方法,然后去get到父类中的属性值并输出。
首先这是错误的想法,不能够修改父类,只能继承父类的属性和方法,或者在子类中更改属性或者重写方法。即使用super.num = 10;修改属性,也只能在子类中使用。也不可能去修改父类中的属性。a.getNum()得到的属性,也只不过是A1继承A的 最初属性值。
那么怎么避免呢?