java - 包私有(private)类中的公共(public)方法

标签 java methods package visibility public-method

在包私有(private)类中将方法标记为 public 有区别吗?

class SomePackagePrivateClass
{
    void foo();          // package private method

    public void bar();   // public method
}

foobar 这里的可见性有什么实际区别吗?

最佳答案

使用继承的示例:

A.java

package pkg1

class A {
  void foo();
  public void bar() {};
}

B.java

package pkg1

public class B extends A{

}

C.java

package pkg2

public class C {
  public void doSomething() {
   B b = new B();
   b.bar(); //ok
   b.foo(); //won't work, since foo() is not visible outside of package 'pkg1'

   A a = new A(); //won't work since A is not visible outside of package 'pkg1'
   a.bar(); //won't work, since a cannot be created
  }
}

关于java - 包私有(private)类中的公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5260467/

相关文章:

python - 用于 Python 的类似 Xpath 的包,用于在列表和字典中查找所有级别的键

swift - #AudioKit 无法在 Xcode 14.1、Maverick 上添加包

java - 仅在接收某些事件时使用 spring 从 kafka 主题消费

java - 是否可以避免 package 和 import 语句?

java - Tomcat 抛出 "java.lang.OutOfMemoryError: Java heap space",但转储中的堆大小小于 -Xmx

java - 收集到方法参数?

java - 变量args反射方法调用

ruby-on-rails - Ruby on Rails 的每个 do 方法。

java - 请验证: this converter reads the byte array as Big-Endian?

java - Jboss 未在 Netbeans 中启动