私有字段的Java继承

时间:2015-03-31 20:21:01

标签: java inheritance private encapsulation protected

我知道除了使用超类的公共setter / getter之外,子类无法访问私有字段。到目前为止,我对面向对象语言没有任何经验。我应该将所有字段设为私有,只使用公共方法在子类中访问它们,还是使它们受到保护并在子类和包中自由使用?

4 个答案:

答案 0 :(得分:1)

让他们protected。这是此关键字存在的唯一目的!

答案 1 :(得分:1)

OOP中,有一项功能encapsulationencapsulation强烈建议我们隐藏来自外部世界的数据。您可以通过将字段/属性/变量设为私有来隐藏数据。

要访问私有变量,请使用一些公共getter方法。

答案 2 :(得分:1)

这取决于您的需求。如果您需要访问子类以及相同的包,请将其设为protected

以下是一般规则:

private:仅限访问类。

protected:包访问以及派生类。

default:仅限同一个包。

public:任何人都可以访问它。

答案 3 :(得分:0)

  

子类不继承其父类的私有成员。但是,如果超类具有访问其私有字段的公共或受保护方法,则子类也可以使用这些方法。

     

嵌套类可以访问其封闭的所有私有成员   class-字段和方法。因此,公共或受保护的嵌套   由子类继承的类具有对所有子类的间接访问权限   超类的私人成员。

See the Java Tutorial