受保护访问修改符在 Java 中的范围是什么?
当超类中声明为受保护的变量、方法或构造函数只能被其他包中的子类或受保护成员类包中的任何类访问时。
受保护的访问修饰符不能应用于类和接口。方法、字段可以声明为受保护的,但是接口中的方法和字段不能声明为受保护的。
受保护的访问允许子类使用辅助方法或变量,同时防止不相关的类尝试使用它。
示例
以下父类使用受保护的访问控制,以允许其子类覆盖openSpeaker()方法 -
class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // implementation details } } class StreamingAudioPlayer { boolean openSpeaker(Speaker sp) { // implementation details 8. Java MODIFIERS } }
在此,如果将 openSpeaker() 方法定义为私有的,那么除了 AudioPlayer 之外,其他任何类都无法访问它。如果将它定义为公共的,那么它将对所有外部世界都是可访问的。但我们的意图是仅将其方法暴露给子类,这就是我们使用受保护修饰符的原因。
广告