关于actionPerformed()的简单问题,望高手解答一下

问题如下:父类中定义了一个Button,其功能在父类的actionPerformed()中实现。在子类想重写这个按钮的功能,我如果在子类中从新定义actionPerfor... 问题如下:
父类中定义了一个Button,其功能在父类的actionPerformed()中实现。在子类想重写这个按钮的功能,我如果在子类中从新定义actionPerformed()修改Button功能的话算是覆盖,望高手指点,我该怎么重新Button的功能?
在线等。。。谢谢!
展开
 我来答
百度网友d378c92e4
2011-06-24 · TA获得超过153个赞
知道答主
回答量:56
采纳率:0%
帮助的人:74.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);
//这里就是你要实现的东西了。
}

哈哈
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式