我有一个基类、一个派生类和另一个外部类。我尝试从外部类更新基类中的值,并且从派生类访问它。
我的类结构如下:
class B:{
bool flag;
setFlag(bool value){
flag = value;
}
printFlag(){
print flag;
}
ExternalClass e = new ExternalClass(this);
}
class External {
B b = null;
External( B b){
this.b = b;
}
b.setFlag(true);
}
Class Derived : extends B{
printFlag();
}
这里虽然我已将标志设置为 true,但 print 方法打印 false。我不知道发生了什么。请帮助我。
下面是一些可以实现您想要的功能的代码:
class Derived extends B{
public Derived(){
super();
// this is the important bit, by calling super() you call the parent classes
// constructor, which in this case changes the attribute "flag"
// by using the constructor of the external class on the class
}
}
class B {
boolean flag;
ExternalClass e;
public B(){
e = new ExternalClass(this);
}
public void setFlag(boolean value) {
flag = value;
}
public void printFlag() {
System.out.println(flag);
}
}
class ExternalClass {
B b = null;
public ExternalClass(B b) {
this.b = b;
b.setFlag (true);
}
}
我是一名优秀的程序员,十分优秀!