大家好!

我不确定我的问题是否多余。但是,在构造函数中使用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.variableaccess control更改为受保护(或更高版本)或具有受保护(或更高版本)的variable吸气剂,则无法访问variable。没有其他方法可以绕过(1)。


  在构造函数中使用super()实例化变量后


您不是(直接)实例化变量,而是在Trial上调用构造函数。然后Trial中的构造函数实例化该变量。

1)您可以通过邪恶的技巧来解决这个问题。但是,在99%的情况下这样做是错误的。

10-05 20:15
查看更多