大家好!
我不确定我的问题是否多余。但是,在构造函数中使用super()实例化变量后,如何在同一类的另一个方法中使用super(variable)。我在某处读到,如果您在父类中使用“ protected”,则应该可以访问它,但是我希望避免这样做。
例:
public class test extends trial{
public test (trial variable){
super(variable);
}
public double testMethod(){
return [super(variable)]; //This is where the super(variable) is going
}
}
最佳答案
我认为Trail
看起来像:
public class Trial {
private final Trial variable;
public Trail(Trial variable) {
this.variable = variable;
}
}
如果是这种情况,那么
Test
如果不将super.variable
的access control更改为受保护(或更高版本)或具有受保护(或更高版本)的variable
吸气剂,则无法访问variable
。没有其他方法可以绕过(1)。在构造函数中使用super()实例化变量后
您不是(直接)实例化变量,而是在
Trial
上调用构造函数。然后Trial
中的构造函数实例化该变量。1)您可以通过邪恶的技巧来解决这个问题。但是,在99%的情况下这样做是错误的。