关于@Override何时应用的用法?

中才德创 2011-04-18 04:44:26
@Override用,就为了代码更健壮。

但下例里,类同的实现相应事件,前者可,后者不可。这是为什么?

//java代码
class PoliceMan implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
//...
}
}


不可
//android代码
private Button.OnClickListener calcBMI = new Button.OnClickListener() {
@Override
public void onClick(View v) {
//...
}
};
...全文
289 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
guiwang2008 2011-05-27
  • 打赏
  • 举报
回复
都不是,如果该方法在父类是抽象方法的话,就不能加,因为你是必须实现该方面,而不是需要重写。而如果父类有实现该方面,而现在你要重新实现,以便实现多态功能,就需要加,以便表示你是重写的。不信自己找例子很容易发现这个规律。这个跟楼上说的什么参数跟参数没关系,我也是新手,自己摸索的,应该是正确的。呵呵
中才德创 2011-04-18
  • 打赏
  • 举报
回复
像下面的就可以。原因是不是super.onResume()的存在?
而super.onClick(v)不可能存在,因为interface接口不可能有实现体。


@Override
public void onResume() {
super.onResume();
Log.v(TAG, "onResume");
}
CyberLogix 2011-04-18
  • 打赏
  • 举报
回复
以参数的形式实现接口时会编译不过

new Button.OnClickListener()是个内部类

没有理由,这是JDK5.0的BUG
1. 以参数的形式实现接口时jdk5.0会编译不过,jdk6.0可以编译通过。 --》》
 公司使用的是5.0
2. 如果使用esplice编译,最好需要检查一下自己的编译环境是否与公司的保持
一致(window -- perference --> java -->compiler)
中才德创 2011-04-18
  • 打赏
  • 举报
回复
还是不理解,实现void onClick(View v)为何不能用@Override?

/**
* Interface definition for a callback to be invoked when a view is clicked.
*/
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
CyberLogix 2011-04-18
  • 打赏
  • 举报
回复
实现了一个接口这个声明就会被自动加进去,一般来讲是没有关系的,但有一
点稍加注意:
以参数的形式实现接口时会编译不过。
如:
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {


这样的就会有问题,本机也编不过。

如果不想让系统自动添加@override方法,可以在eclipse里面进行屏蔽
具体方法:window -->preferences-->java-->editor-->save Actions把perform the selected action on save 和addtional actions前面对钩选上。
然后在configure 里面进行配置即可,将missing code里面的annotations override的选择去掉。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧