Which class members should have protected modifier?
我知道我是protectedJava关键字,它是一类可以访问,但不包收藏指正,世界。
我的问题是,当protected我应该使用?
- 你应该按照你所说的去做:当你想要某个类、包、子类可以访问的东西,而不是世界可以访问的时候。请你澄清一下你的问题,解释一下你的问题好吗?
- 当你需要使用它时:p
- 在关门前一两个小时。对第一个被指控的副本的公认回答并没有明确回答"我应该何时使用受保护的"。第二个所谓的副本被忽略了,只有3个答案,它也没有真正集中在"保护时"。不要通过阻止出现好的答案来降低stackoverflow。或者,至少如果你关闭,你应该解释为什么你认为一个方形的钉子适合一个圆孔。
- @死灵法师我用三个答案作为问题的副本结束了这个问题,因为接受的答案的第二段精确地描述了何时使用受保护的,以及在这样做时要记住什么。这个问题本身就要求何时使用private以及何时使用protected,使这个问题成为一个副本。
- 我把它关了,因为它太宽了。就是这样。目前还不清楚:使用它的原因已经说明,问题的重点是什么?这是个不好的问题。
在这种情况下,当您希望元素可以被类、包、子类访问,而不是世界访问时,应该使用protected。这是非常有用的,如果你让程序有大量的其他程序员,你不希望他们改变你的变量,但你希望能够使子类可以做到这一点。
在打算用作基类的类中使用protected,并且希望从派生类访问某些方法或属性,即使这些方法或属性不在同一个包中并且不公开。
它通常在框架中使用。通常有一个定义公共API的接口,以及一个要派生的基类(通常是抽象的)。在派生类中,重写方法可以使用某些受保护的方法和或属性。这样:
- 这些方法不需要公开
- 派生类可能在实现者的包中,而不是在框架1中。