受保护的Java访问修饰符范围是什么?


当一个在超类中声明为受保护的变量、方法或构造函数只能被其它包内子类或受保护成员类包中的任何类访问。

受保护的访问修饰符不能应用到类和接口。方法和字段可以声明为受保护,但接口中的方法和字段不能声明为受保护。

受保护的访问允许子类使用帮助程序方法或变量,同时防止不相关的类尝试使用它。

例如

以下父类使用受保护的访问控制,以允许其子类覆盖openSpeaker()方法 −

class AudioPlayer {
   protected boolean openSpeaker(Speaker sp) {
      // implementation details
   }
}
class StreamingAudioPlayer {
   boolean openSpeaker(Speaker sp) {
      // implementation details 8. Java MODIFIERS
   }
}

此处,如果我们将 openSpeaker() 方法定义为私有的,则它将无法从除 AudioPlayer 之外的任何其他类访问。如果我们将其定义为公共的,那么它将对所有外部世界可访问。但我们的目的是只向子类公开此方法,这就是我们使用受保护修饰符的原因。

更新日期: 30-Jul-2019

2K+ 浏览量

开启你的 职业

完成课程以获得认证

立即开始
广告