标签:java private public access-modifiers inheritance
我在SO中看到用户说受保护的字段很糟糕,因为它会随着代码的增长而引入问题.请参阅以下代码.
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 class.但私有成员不是由子类继承的(即使我可以使用公共getter和setter访问这些字段).现在我的困惑在于我是否应该将Car类中的文件保护为保护而不是私有.但人们说这会带来问题.
这是否意味着无论你总是写什么课,让字段变得私密?
如果是,那么使用protected关键字的实例是什么?它只适用于我们计划在子类中使用的方法吗?
解决方法:
你自己钉了它:一个好的做法是默认情况下使一切都“私密”.然后,您的特定设计可能需要例如能够使用某些属性或(最好)子类内的某些方法.在这种情况下,你需要将它们移向’受保护’ – 但仅限于那种情况.
请记住,使用访问器(getter& setter)是完全可以的,并且可以在不破坏封装的情况下完成.
标签:java,private,public,access-modifiers,inheritance 来源: https://codeday.me/bug/20190609/1205291.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。