【问题标题】:Java access modifiers - method available to subclasses and packageJava 访问修饰符 - 子类和包可用的方法
【发布时间】:2009-08-29 14:57:12
【问题描述】:

当与方法一起使用时,哪些访问修饰符使其可用于包中的所有类和子类?

【问题讨论】:

  • 可能一些关于 Java 的基础书籍不会是多余的?

标签: java access-modifiers


【解决方案1】:

publicprotected 和默认修饰符(没有关键字)。除了private 之外的所有内容。

例如,假设包foo 具有以下类:

public class MyClass {
   public void method1() { };
   protected void method2() { };
   void method3() { };
   private void method4() { };
}

然后一个类foo.SecondClass 可以调用方法method1method2method3,但不能调用method4

请参阅Java tutorial,了解每个修饰符所允许的有用表格。

【讨论】:

    【解决方案2】:

    除私有之外的所有内容(例如,公共、受保护和默认修饰符)。 请参见下图。

    【讨论】:

      【解决方案3】:

      包访问修饰符实际上是没有修饰符。它也被称为“默认”修饰符。请参阅here 了解更多信息。

      【讨论】:

        【解决方案4】:

        事实证明protected 实际上比什么都不说更“受保护”。默认的 package-privateprotected 都允许从包内访问; protected 然后为包外的子类添加可见性。不过,它比public 更“受保护”。

        【讨论】:

          猜你喜欢
          • 2013-12-01
          • 1970-01-01
          • 2018-04-18
          • 1970-01-01
          • 1970-01-01
          • 2011-06-13
          • 1970-01-01
          • 2013-05-25
          • 2016-06-15
          相关资源
          最近更新 更多