有一个抽象类A和一个接口B。有些类仅从类继承A,有些类从类继承A并实现接口B。有一种方法可以执行类A和接口中的方法B。如何实施该方法?我有几种选择,但它们都有缺点:
1 个选项
public void run(A a, B b) {
//код
}
缺点是你需要指定同一个类两次
选项2
public void run(A a){
B b = (B) a
//код
}
缺点是您可以将任何类继承人放入此方法中,A因此您可能会得到异常ClassCastException
选项3
班级
public class C extends A implements B {}
方法
public void run(C c){
//код
}
缺点是你需要创建一个空类
