读书人

接口可以在实例化的时候被定义吗?该如

发布时间: 2012-03-13 11:21:11 作者: rapoo

接口可以在实例化的时候被定义吗?
最近在学习android,在看GridView的代码是有下面一段代码:

gridview.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridViewActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
}
);

这里接口OnItemClickListener在实例化的同时被定义,可以这么理解吗?

[解决办法]
用的是OnItemClickListener这个的实现类,java的多态,面向接口编程
[解决办法]
恩 2L 正解

那这里就很好理解 匿名类实现OnItemClickListener 接口
[解决办法]
写的更明白点就是:
class MyListener implements OnItemClickListener{
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridViewActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
}
OnItemClickListener myListener = new MyListener();
gridview.setOnItemClickListener(myListener);
这样就形成了多态,接口是你自己现实的;他最终还是OnItemClickListener;

读书人网 >Java Web开发

热点推荐