我如何制作仅在子类内部具有访问权限的方法?

问题描述 投票:0回答:1

我想给方法提供只有子类和当前类可以调用的访问权限。例如:

public class Parent{ 
something void mySetterMethod(int input){
     this.something = input;
   }
}

public class Child extends Parent{
     mySetterMethod(otherInput);
}

但是这不能用于:

public class SomeClassInSamePackage(){
    public static void main(String[] args){
       Parent parent = new Parent();
       parent.mySetterMethod(input);
}
java inheritance encapsulation
1个回答
0
投票

作为一般建议优先考虑组成而不是继承]。

public class Parent { 
    public void mySetterMethod(int input){
     this.something = input;
   }
}

public class Child {
    private final Parent parent = new Parent();
    ...
        parent.mySetterMethod(otherInput);
    ...
}

您不能只从同一包中调用它。

作为历史记录,Java 1.0具有private protected,尽管显然它有问题。

© www.soinside.com 2019 - 2024. All rights reserved.