我问的问题是我是否正确建模了UserControl的子类。具体而言,基类具有方法public abstract JComponent toComponent()
。在实现过程中,子类应该覆盖保持方法签名相同的方法,除了return语句应该返回一个专门的组件,即return new JButton();
当我的图的创建者理解实现应该如何看时,我可以看到另一个程序员可能如何看一下图表并得出以下结论。
public JButton toComponent(){
if(GUIComponent == null || !(GUIComponent instanceof JButton)){
return new JButton();
} else{
return (JButton) GUIComponent;
}
}
预期的实施方式是:
public JComponent toComponent(){
if(GUIComponent == null || !(GUIComponent instanceof JButton)){
return new JButton();
} else{
return GUIComponent;
}
}
在这种情况下,实施可能不是很重要,但在更复杂的系统中,它可能被证明是至关重要的。所以我想知道如何正确地模拟方法的覆盖以返回不同的类型,同时保持签名的准确性。
答案 0 :(得分:0)
如果您的意图是子类签名应该返回JComponent,那么图表应该说明这一点,而不是说他们返回JButton或其他什么?
您的图表应指定实际的界面。目前,它揭示了实现的细节,即创建一个JButton对象。