Java 在重写超类方法时,如何首先正确调用它?

Java 在重写超类方法时,如何首先正确调用它?,java,inheritance,Java,Inheritance,这里我试图重写超类中的createControlPanel()方法。超类有一个已经声明的“panel”变量,但这里似乎看不到它。我应该怎么做才能使用超类中声明的变量?你是说超类将方法声明为公共JComponent createControlPanel(JPanel panel)?如果是这样,那么您的方法必须具有相同的参数,否则它不是重写,您只需在super调用中传递该参数即可。不,超类方法是public JComponent createControlPanel()。panel是一个在超类中声明

这里我试图重写超类中的createControlPanel()方法。超类有一个已经声明的“panel”变量,但这里似乎看不到它。我应该怎么做才能使用超类中声明的变量?

你是说超类将方法声明为
公共JComponent createControlPanel(JPanel panel)
?如果是这样,那么您的方法必须具有相同的参数,否则它不是重写,您只需在
super
调用中传递该参数即可。不,超类方法是
public JComponent createControlPanel()
。panel是一个在超类中声明的变量,我想在我的子类中使用它。基本上,这是一个面板,我想添加额外的按钮。因为我们不知道超级类,很难帮助你。
panel
是字段变量还是局部变量或其他类型的变量?如果是字段,它是
公共的
私有的
受保护的
,还是包私有的?如果
private
,是否有
getPanel()
方法?
JComponent
返回值是什么?从方法名称,我会猜它是面板,在这种情况下,您只需将返回值赋给一个局部变量,使用它,然后在最后返回它,一个您缺少的部分(返回
JComponent
对象)。我已经部分添加了超类的外观(因为它很长)。rry,我编辑了注释,添加更多问题。特别是:返回值是多少?两个存根方法都缺少
return
语句。如果超类有
返回面板
,那么您已经拥有了它,您只是忘记了从
super
调用中捕获返回值。
@Override
public JComponent createControlPanel() {
    super.createControlPanel();
    panel.add(new JLabel("Brain:"));
    brainMode = new JCheckBox("Brain active");
    panel.add(brainMode); 
}

public JComponent createControlPanel() {
    JPanel panel = new JPanel();
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
}