设置是这样的。
我有多个接口(即A,B,C),并且有类(Z和Y)来实现它们
X实现A,B {} , Y实现A,C {} , Z实现B,C {}
接口A,B,C中的某些函数具有相同的定义,并且我不想在每个类中都重新键入它们,该怎么办?
我在Google上进行了搜索,并注意到一种解决方案是在界面中使用方便的关键字默认。但是,如果我被禁止使用此关键字,例如代码与Java8之前的版本兼容,该怎么办?
有没有更好的方法来解决此问题?
答案 0 :(得分:1)
您可以favor composition并采用一个类来实现要重用的方法作为参数,而不是通过继承来获取这些方法,而不必扩展多个类来获取您的定义。将其保留为私有的final成员变量,您可以以通用方式调用此通用方法。
答案 1 :(得分:0)
然后,您应该使用抽象类,并为以下不同接口中的通用方法提供一些默认实现。
interface A {
void m1();
void common();
}
interface B {
void m2();
void common();
}
abstract class ABClass implements A, B {
public void common() {
System.out.println("Default");
}
Class X extends ABClass {
}