我看到 SO 中的用户说 protected 字段不好,因为随着代码的增长它会引入问题。请引用以下代码。
public class Car {
private String modelName;
private int yearReleased;
//getters and setters
}
如果 Car 类由名为 ToyotaCar 的类扩展
public class ToyotaCar extends Car{
// Toyota specific stuff
}
我希望我的 ToyotaCar 对象有一个 modelName
和 yearReleased
字段。这就是我决定从 Car 类扩展的原因。但是私有(private)成员不会被子类继承(即使我可以使用公共(public) getter 和 setter 访问这些字段)。现在我的困惑是我是否应该将 Car 类中的文件设置为 protected 而不是私有(private)的。但人们说这会带来问题。
这是否意味着无论你写什么类总是将字段设为私有(private)?
如果是,在什么情况下使用了 protected 关键字?它是否仅适用于我们计划在子类中使用的方法?
最佳答案
您自己搞定了:一个好的做法是默认将所有内容设置为“私有(private)”。然后,您的特定设计可能需要例如能够在子类中使用某些属性或(最好)某些方法。在那种情况下,您需要将它们移至“ protected ”状态 - 但仅限于那种情况。
请记住,使用访问器(getter 和 setter)是完全可以的,并且可以在不破坏封装的情况下完成。
关于java - 混淆何时使用私有(private)字段与 protected 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576685/