我有interface
public interface I
{
// an abstract method m1();
}
我有class
A
和class B
class A implements I
{
public void m1()
{
System.out.println("m1 Method From A");
}
}
class B implements I
{
public void m1()
{
System.out.println("m1 Method From B");
}
}
我可以使用m1
创建的class B
来调用object
class A
方法吗?
例如,我创建了object
A
I i = new A();
如果我写i.m1()
m1
应该调用class B
的方法
注意:super class or sub class
与class A
class B
关系
我是否能打电话只是怀疑
谢谢......
答案 0 :(得分:4)
您需要将B
类型的依赖关系/关联添加到A
。这可以通过在B
A
类的类成员来轻松完成
这样的事情:
class A implements I
{
private B b = new B();
public void m1()
{
System.out.println("m1 Method From A");
b.m2();
}
}
答案 1 :(得分:0)
您可以使用反射:
<强>接口强>
public interface I {
public void m1();
}
A类
public class A implements I
{
public void m1()
{
System.out.println("m1 method from A");
try {
Method sampleMethod = B.class.getMethod("m1" , new Class[] {});
sampleMethod.invoke(B.class.newInstance());
}
catch(Exception e) {
}
}
}
B类
public class B implements I {
public void m1() {
System.out.println("m1 method from B");
}
}
主要强>
public static void main(String[] args) {
A a = new A();
a.m1();
}
OP:
m1方法来自A
m方法来自B