java 泛型实现多继承
时间: 2024-05-06 17:20:15 浏览: 68
Java中不支持多继承。但是可以通过泛型实现类似于多继承的功能。
例如,我们定义一个接口A和B:
```
public interface A {
void methodA();
}
public interface B {
void methodB();
}
```
然后我们定义一个泛型类C,它实现了A和B接口:
```
public class C<T extends A & B> implements A, B {
private T t;
public C(T t) {
this.t = t;
}
@Override
public void methodA() {
t.methodA();
}
@Override
public void methodB() {
t.methodB();
}
}
```
这里的关键是使用了泛型类型T,并限定T必须实现A和B接口,即T必须是A和B的子类或实现类。然后我们在类C中持有一个T类型的实例,并在实现A和B接口的方法中调用T对象的对应方法。
这样,我们就可以使用类C来实现多个接口的功能了:
```
public class D implements A, B {
@Override
public void methodA() {
System.out.println("D methodA");
}
@Override
public void methodB() {
System.out.println("D methodB");
}
}
public static void main(String[] args) {
D d = new D();
C<D> c = new C<>(d);
c.methodA();
c.methodB();
}
```
输出结果为:
```
D methodA
D methodB
```
阅读全文