可继承的类成员

时间:2016-04-02 04:32:32

标签: java

我正在攻读我的OCA证书。并偶然发现了一个示例问题。

它会为您提供一个代码,并要求您确定哪个选项是正确的。代码如下:

class Employee {
    private String name;
    string address;
    protected String phonenumber;
    public float experience;
}
class Programmer extends Employee {
    programmer (String val){
      name = val;
    }
    String getName() {
      return name;
    }
}
class Office{
    public static void main (String args[]){
      new Programmer ("Harry").getName();
    }
}

现在这个问题的答案是"编译错误"。我知道这是正确的,因为您无法访问String' name'因为它是私人的。

但是在选项中有一个说:"派生类程序员不能在其构造函数中访问其基类的变量。"

现在,我认为这基本上就是说构造函数' Programmer'无法访问变量' name'来自其基层'员工' (因为变量是公共的)。这让我相信这也是一个正确的陈述。但是,书中的答案页面声明了编译错误选项是唯一正确的声明。

我希望有人能解释为什么这个陈述是错误的。

1 个答案:

答案 0 :(得分:0)

  

“派生类程序员无法访问其基类的变量   在它的构造函数中。“

好吧,类可以访问变量,而不管它是在构造函数中,在方法中还是在声明部分中。那没关系。