public methods in package-private classes

后端 未结 7 1641
刺人心
刺人心 2020-12-04 19:35

Does it make a difference to mark methods as public in package-private classes?

class SomePackagePrivateClass
{
    void foo();          // pack         


        
7条回答
  •  日久生厌
    2020-12-04 19:56

    Example using inheritance:

    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
      }
    }
    

提交回复
热议问题