我正在寻找Java中问题的解决方案。希望团队可以帮助我。Java抽象和接口
考虑以下类:
Class A{
//constructor
Object obj;
public A(Object obj){
this.obj = obj;
}
public void ma1(){
system.out.println("In ma1");
obj.mc1();
}
public void ma2(){
system.out.println("In ma2");
//A should not be able to access mc2
obj.mc2();
}
}
Class B{
//constructor
Object obj
public B(Object obj){
this.obj = obj;
}
public void mb1(){
system.out.println("In mb1");
// B should not be able to access mc1
obj.mc1();
}
public void mb2(){
system.out.println("In mb2");
obj.mc2();
}
}
Class C{
public void mc1(){
system.out.println("In mc1");
}
public void mc2(){
system.out.println("In mc2");
}
}
public static void main(String[] args){
A a = new A(new C);
B b = new B(new C);
a.ma1();
a.ma2();
b.mb1();
b.mb2();
}
现在我想的对象“A”应该能够访问MC1和不MC2 我想对象“B”应该能够访问MC2,而不是MC1
任何人都可以解释我如何实现上述功能? 注意:A类,B类是我的工具类,它的方法在我的项目的多个地方使用。我想限制我的开发人员访问特定的方法。
问候, 沙
你可以有ç实现2个接口,其中一个每个方法,并定义A应该接收一个接口的实例,而另一个接口B。 C将有资格获得这两项资格。 – njzk2 2014-09-24 20:54:40
谢谢@ njzk2。不过,我了解你的建议。你能详细说明并提供代码吗? – user3401717 2014-09-24 20:56:15
为什么它被拒绝投票? – user3401717 2014-09-25 17:17:16