A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linuxpara910829 中级黑马   /  2015-2-23 19:51  /  2252 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
Map是一个接口,接口中有一个内部接口Entry
HashMap,实现了Map接口覆写了Map接口中的方法
那么HashMap实现Map接口的时候,是怎么处理内部接口Entry的?

最佳答案

3 个回复

倒序浏览
  1. import java.util.Map;

  2. public class EntryTest {

  3.         /**
  4.          * Map.Entry
  5.          */
  6.         public static void main(String[] args) {
  7.                 /*
  8.                  * 因为:
  9.                  * 1,静态。Entry为Map的成员(被static修饰的只能是成员),可以直接用类名引用类名的方式访问。
  10.                  * 2,接口。定义一个标准,只要遵守这个标准的人,都可以使用它的功能。
  11.                  *
  12.                  * 总结:
  13.                  * 因为是静态的内部接口,实质升级成了共享接口,所以和一般接口的使用无差别。内而不内。
  14.                  * 下面我自定义Animal类,实现了Map.Entry接口。我能如此,HashMap自不用说。
  15.                  *
  16.                  * 感悟:
  17.                  * 这样的设计似乎是在提醒我们:你要用Map吗?过来看看我们提供的Map.Entry,功能很不错哦!
  18.                  * 内而不内。
  19.                  * java设计者高明。
  20.                  *
  21.                  *
  22.                  * 调用实现接口的方法有两种:1、animal.getValue();2、me.getValue();
  23.                  * */
  24.                
  25.                 Animal animal=new Animal();
  26.                 animal.getValue();
  27.                
  28.                
  29.                 Map.Entry  me=new Animal();
  30.                 me.getValue();
  31.         }

  32. }
  33. /*
  34. *
  35. *
  36. * */
  37. class Animal implements Map.Entry<String, String>{

  38.         @Override
  39.         public String getKey() {
  40.                 // TODO Auto-generated method stub
  41.                 return null;
  42.         }

  43.         @Override
  44.         public String getValue() {
  45.                 // TODO Auto-generated method stub
  46.                 return null;
  47.         }

  48.         @Override
  49.         public String setValue(String value) {
  50.                 // TODO Auto-generated method stub
  51.                 return null;
  52.         }
  53.        
  54. }
复制代码
回复 使用道具 举报
这是我对这个问题的一点总结:
回复 使用道具 举报
这种设计思想很好。
接口静态绑定到类上:
1,扩充了类的功能;
2,接口还是接口,可以随意使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马