我正在使用spring并且有2个界面,
interface A {
public void a();
}
interface B {
public void B();
}
及其实现
class AImpl implements A {
public void a(){ // TODO }
}
class BImpl implements B {
public void b(){ // TODO }
}
现在我创建一个接口C
interface C extends A, B {}
有什么方法可以使用AImpl和BImpl的方法定义来获取类型C的bean
答案 0 :(得分:1)
您不能创建扩展AImpl和BImpl的CImpl,因为Java不支持类的多重继承。
但是您可以执行以下操作:
class CImpl implements C {
private A a;
private B b;
public CImpl(A a, B b) {
this.a = a;
this.b = b;
}
public void a() {
a.a();
}
public void b() {
b.b();
}
}
并使用以下命令创建您的CImpl:
CImpl c = new CImpl (new AImpl(), new BImpl());
如果使用Spring(如您的标签所示),则可以将AImpl,BImpl和CImpl配置为Bean,并为CImpl的构造函数使用自动装配。