如果两者A
都不B
是final
,那么您可以使用适配器模式。
创建一个接口,其中定义了所需的两个方法,例如Adapter
.
interface Adapter {
String getter1();
String getter2();
}
创建A
和B
每个实现的子类Adapter
。
public class AAdapter extends A implements Adapter {}
public class BAdapter extends B implements Adapter {}
然后您的方法可以采用 type 的对象Adapter
。
如果您不能执行上述操作,因为其中至少有一个是final
,那么您将不得不使用组合而不是继承。不要继承A
and B
,而是将它们包装在 Adapter 类中。
class AAdapter implements Adapter {
A a;
public AAdapter(A a) { this.a = a;}
@Override public String getter1() {
return a.getter1();
}
@Override public String getter2() {
return a.getter2();
}
}
class BAdapter implements Adapter {
B b;
public BAdapter(B b) { this.b = b;}
@Override public String getter1() {
return b.getter1();
}
@Override public String getter2() {
return b.getter2();
}
}