【发布时间】:2016-02-16 09:38:46
【问题描述】:
我有 2 个 Java 类 A 和 B;它们都扩展了另一个 Java 类,例如 C。在另一个类中,我有一个 C 类的对象,作为方法的参数传递,我必须使用这个对象(具有适当的强制转换)来设置 A 和 B 的字段,例如:
if(C instanceof A){
((A)C).setAField1(AField1);
...
((A)C).setAFieldN(AFieldN);
}else if (C instanceof B){
((B)C).setBField1(BField1);
...
((B)C).setBFieldN(BFieldN);
}
我必须设置相同的字段,我对 setter 方法有相同的调用,但我必须进行不同的强制转换。我该怎么做才能避免代码重复?
PS:我不能将这些字段放在 C 类中,因为它是由不需要它们的其他类扩展的。
【问题讨论】:
标签: java inheritance code-duplication