黑马程序员技术交流社区
标题:
关于内部接口的问题
[打印本页]
作者:
linuxpara910829
时间:
2015-2-23 19:51
标题:
关于内部接口的问题
Map是一个接口,接口中有一个内部接口Entry
HashMap,实现了Map接口覆写了Map接口中的方法
那么HashMap实现Map接口的时候,是怎么处理内部接口Entry的?
作者:
sofeel
时间:
2015-2-23 19:51
import java.util.Map;
public class EntryTest {
/**
* Map.Entry
*/
public static void main(String[] args) {
/*
* 因为:
* 1,静态。Entry为Map的成员(被static修饰的只能是成员),可以直接用类名引用类名的方式访问。
* 2,接口。定义一个标准,只要遵守这个标准的人,都可以使用它的功能。
*
* 总结:
* 因为是静态的内部接口,实质升级成了共享接口,所以和一般接口的使用无差别。内而不内。
* 下面我自定义Animal类,实现了Map.Entry接口。我能如此,HashMap自不用说。
*
* 感悟:
* 这样的设计似乎是在提醒我们:你要用Map吗?过来看看我们提供的Map.Entry,功能很不错哦!
* 内而不内。
* java设计者高明。
*
*
* 调用实现接口的方法有两种:1、animal.getValue();2、me.getValue();
* */
Animal animal=new Animal();
animal.getValue();
Map.Entry me=new Animal();
me.getValue();
}
}
/*
*
*
* */
class Animal implements Map.Entry<String, String>{
@Override
public String getKey() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public String setValue(String value) {
// TODO Auto-generated method stub
return null;
}
}
复制代码
作者:
sofeel
时间:
2015-2-24 18:10
这是我对这个问题的一点总结:
作者:
sofeel
时间:
2015-2-24 18:13
这种设计思想很好。
接口静态绑定到类上:
1,扩充了类的功能;
2,接口还是接口,可以随意使用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2