interface作为方法的参数?

zihaoyu 2010-04-05 01:35:07
今天碰到了这么个问题:
把一个链表反向。已经给了如下代码:

public class ReverseList {

interface NodeList {
int getItem();
NodeList nextNode();
}

void reverse(NodeList node) {

}

public static void main(String[] args) {

}

}

我没懂一个interface能作为一个方法(reverse)的参数吗?在这个方法里如何实现这些interface定好的contract?谢谢。
...全文
351 10 打赏 收藏 转发到动态 举报
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
duyu1025 2010-04-06
  • 打赏
  • 举报
回复
面向接口编程就是多态的一个体现


不同的类实现一个接口,然后类的实现当作参数传入其它方法中,很好用的
zliuzz 2010-04-06
  • 打赏
  • 举报
回复
恩 这就是典型的多态
孤独剑客 2010-04-06
  • 打赏
  • 举报
回复
这没有什么奇怪的啊
就相当于再其他接口中一样的
可以调用别人的接口啊
coolbamboo2008 2010-04-06
  • 打赏
  • 举报
回复
面向接口编程,实际传入的是这个接口的一个实现类,体现了多态的思想
zihaoyu 2010-04-06
  • 打赏
  • 举报
回复
谢谢各位,我会试着再code一遍
dj4kobe 2010-04-05
  • 打赏
  • 举报
回复
java.util.List就是一个接口,经常会被用来做参数.
原来还有内部interface的概念的.
wibnmo 2010-04-05
  • 打赏
  • 举报
回复
这样是可以的。多态的体现。建议楼主多看看设计模式。多态在设计模式中处处可见。
tdgwj 2010-04-05
  • 打赏
  • 举报
回复
定义接口类型参数 很方便的
传递任何一个实现该接口的子类即可
tdgwj 2010-04-05
  • 打赏
  • 举报
回复
当然可以 自定义的类/抽象类/接口 都是一种数据类型
接口类型的参数 当然是它子类的示例
这里可以使用匿名类 在匿名类内实现两个方法
reverse(new NodeList(){

public int getItem() {
// TODO Auto-generated method stub
return 0;
}

public NodeList nextNode() {
// TODO Auto-generated method stub
return null;
}

});


不过这段代码如果要写在 main方法中 reverse方法必须定义为static
舷Kelvin 2010-04-05
  • 打赏
  • 举报
回复
可以啊,所有的实现了该接口的对象都能作为参数传进来。
相关推荐

62,567

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告