我有两个分支:
public class FlowItem {
}
public abstract class Flow extends FlowItem {
protected LinkedList<FlowItem> items = new LinkedList<FlowItem>();
public abstract void show(FlowItem item);
}
我有下一个实施结构:
public class AuthFlow extends Flow {
public AuthFlow() {
items.add(new PrivacyFlow());
items.add(new ExtendedPrivacyFlow());
items.add(new FinalFlowItem());
}
public void show(FlowItem item) {
// drawing logic
}
}
PrivacyFlow
和ExtendedPrivacyFlow
也从Flow
延伸。 FinalFlowItem
从FlowItem
延伸。
问题是:如何使用show(...)
方法的单\父实现?
我想在一个地方继续绘制逻辑。
答案 0 :(得分:0)
您show
方法是抽象的,这意味着从中继承的每个类都需要实现该方法。我假设您的子类中有与渲染相关的信息,在这种情况下,您可以相对轻松地将所述信息移动到Flow
类中。您可以使用类似于保存相关信息的数据封装方法。
答案 1 :(得分:0)
您需要做的只是将父类中的show方法更改为final,这样就可以防止覆盖子类。
public final void show(FlowItem item){
//your code here
}