Des*_*PRG 4 java inheritance private public access-modifiers
我在SO中看到用户说受保护的字段很糟糕,因为它会随着代码的增长而引入问题.请参阅以下代码.
public class Car {
private String modelName;
private int yearReleased;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
如果Car类由名为ToyotaCar的类扩展
public class ToyotaCar extends Car{
// Toyota specific stuff
}
Run Code Online (Sandbox Code Playgroud)
我希望我的ToyotaCar对象有一个modelName和yearReleased字段.这就是为什么我决定延续Car class.但私有成员不是由子类继承的(即使我可以使用公共getter和setter访问这些字段).现在我的困惑在于我是否应该将Car类中的文件保护为保护而不是私有.但人们说这会带来问题.
这是否意味着无论你总是写什么课,让字段私有?
如果是,那么使用protected关键字的实例是什么?它只适用于我们计划在子类中使用的方法吗?
你自己钉了它:一个好的做法是默认情况下使一切都"私密".然后,您的特定设计可能需要例如能够使用某些属性或(最好)子类内的某些方法.在这种情况下,你需要将它们移向'受保护' - 但仅限于那种情况.
请记住,使用访问器(getter和setter)是完全可以的,并且可以在不破坏封装的情况下完成.
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |