开发者社区> 问答> 正文

java中受保护的访问修饰符是什么啊?

已解决

java中受保护的访问修饰符是什么啊?

展开
收起
格格的阿里云 2022-04-03 19:47:42 548 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    受保护的访问修饰符-protected
    protected 需要从以下两个点来分析说明:

    子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;

    子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。

    protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(内部类除外)。 接口及接口的成员变量和成员方法不能声明为 protected

    子类能访问 protected 修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。

    下面的父类使用了 protected 访问修饰符,子类重写了父类的 openSpeaker() 方法。

    class AudioPlayer {
       protected boolean openSpeaker(Speaker sp) {
          // 实现细节
       }
    }
    
    class StreamingAudioPlayer extends AudioPlayer {
       protected boolean openSpeaker(Speaker sp) {
          // 实现细节
       }
    }
    

    如果把 openSpeaker() 方法声明为 private,那么除了 AudioPlayer 之外的类将不能访问该方法。

    如果把 openSpeaker() 声明为 public,那么所有的类都能够访问该方法。

    如果我们只想让该方法对其所在类的子类可见,则将该方法声明为 protected。

    2022-04-03 19:57:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载