Java 如何在子类内部创建具有调用访问权限的方法?
我想给一个方法一个只有子类和当前类可以调用的访问权限。 例如:Java 如何在子类内部创建具有调用访问权限的方法?,java,inheritance,encapsulation,Java,Inheritance,Encapsulation,我想给一个方法一个只有子类和当前类可以调用的访问权限。 例如: public class Parent{ something void mySetterMethod(int input){ this.something = input; } } public class Child extends Parent{ mySetterMethod(otherInput); } 但这不应该适用于: public class SomeClassInSamePackage(
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);
}
作为一条一般性建议,我们更喜欢组合而不是继承 你不能从同一个包中调用它
历史上,Java1.0有
私有保护
,尽管它显然有缺陷。Java没有这样的访问修饰符。包内的访问仅在private
修改器中受限制,但在子对象中不可用。您可以使用接口按使用的类型限制访问。
public class Parent {
public void mySetterMethod(int input){
this.something = input;
}
}
public class Child {
private final Parent parent = new Parent();
...
parent.mySetterMethod(otherInput);
...
}