Java如何将子调用方法重新传输给父级?

时间:2016-05-18 13:55:07

标签: java oop design-patterns

我有两个分支:

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
    }
}

PrivacyFlowExtendedPrivacyFlow也从Flow延伸。 FinalFlowItemFlowItem延伸。 问题是:如何使用show(...)方法的单\父实现? 我想在一个地方继续绘制逻辑。

2 个答案:

答案 0 :(得分:0)

show方法是抽象的,这意味着从中继承的每个类都需要实现该方法。我假设您的子类中有与渲染相关的信息,在这种情况下,您可以相对轻松地将所述信息移动到Flow类中。您可以使用类似于保存相关信息的数据封装方法。

答案 1 :(得分:0)

您需要做的只是将父类中的show方法更改为final,这样就可以防止覆盖子类。

public final void show(FlowItem item){
//your code here
}