我想知道是否有办法阻止一个类使用方法,但让另一个使用该方法取决于它们扩展的内容。
让我们说class1实现了Plugin而class2实现了Mod,是否可以允许class2使用方法load();但是停止使用class1
答案 0 :(得分:1)
也许您可以将调用者的类型传递给方法,然后使用instanceof comparison operator。例如:
public void myMethod(Object obj){
if(obj instanceof Mod){
\\ do something
} else if(obj instanceof Plugin){
\\ do not permit
}
}
答案 1 :(得分:-1)
使用 instanceof 检查实例类型,然后授予方法权限。
Class1 c1 = new Class1();
Class2 c2 = new Class2();
doIt(c1);
doIt(c2);
public void doIt(Object obj){
if (obj instanceof Class2){
myRestrictedMethod();
}
}