关于actionPerformed()的简单问题,望高手解答一下
问题如下:父类中定义了一个Button,其功能在父类的actionPerformed()中实现。在子类想重写这个按钮的功能,我如果在子类中从新定义actionPerfor...
问题如下:
父类中定义了一个Button,其功能在父类的actionPerformed()中实现。在子类想重写这个按钮的功能,我如果在子类中从新定义actionPerformed()修改Button功能的话算是覆盖,望高手指点,我该怎么重新Button的功能?
在线等。。。谢谢! 展开
父类中定义了一个Button,其功能在父类的actionPerformed()中实现。在子类想重写这个按钮的功能,我如果在子类中从新定义actionPerformed()修改Button功能的话算是覆盖,望高手指点,我该怎么重新Button的功能?
在线等。。。谢谢! 展开
1个回答
展开全部
我觉得你不用重写父类的actionPerformed()方法,你只需要重写父类actionPerformed()方法中调用了哪个方法,你就重写哪个方法就可以了,如果父类的actionPerformed方法没有调用自己的方法,那你可以重构下父类,弄一个新的方法来被actionPerformed调用,然后你再重写那个新方法,哈哈。
追问
可以重构下父类,怎么理解?父类中actionPerformed如下形式,都是对菜单项的响应:
public void actionPerformed(ActionEvent e) {
if ( if(e.getSource()==menuitemNew) { }
else if (e.getSource() == menuItemSave) 。。。
else if (e.getSource() == menuItemSave)。。。
。。。。}
这里new的功能没有实现,想在子类中实现,其余的功能在父类中实现,该怎么写?
追答
在父类里,加一个方法,actionPerformed中的重构过去,如下:
void doResponceForAction(ActionEvent e){
if ( if(e.getSource()==menuitemNew) { }
else if (e.getSource() == menuItemSave) 。。。
else if (e.getSource() == menuItemSave)。。。
。。。。
}
然后父类的
public void actionPerformed(ActionEvent e) {
doResponceForAction(ActionEvent e);
}
在你的子类重写doResponceForAction方法,子类方法如下:
@Overewrite
public void doResponceForAction(ActionEvent e) {
super.doResponceForAction(e);
//这里就是你要实现的东西了。
}
哈哈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询