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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雷丹 中级黑马   /  2013-10-24 16:11  /  1294 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

HashMap<String,String> hashMap = new HashMap <String,String>();
//Map<String,String> map = hashMap;


hashMap.put("1","abcd");
hashMap.put("2","ef");
hashMap.put("3","ghm");
hashMap.put("4","Dalian");

int size=hashMap.size();
System.out.println("the size of map is-->"+size);
String str=new String();
str=hashMap.get("4");
System.out.println(str);
hashMap.put("4","Wuhan");
str=hashMap.get("4");
System.out.println(str);
这个是能正常编译运行的,并且和原来结果一样。

原来的程序中,有Map<String,String> map = hashMap;这一句,
并且,下面的对象都是用map,
我不明白为什么要加这一句,直接用hashMap调用方法不就可以了吗?

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

4 个回复

倒序浏览
两种方法都是可以的,体现出java的多态,就是通过指向父类、接口的指针,来调用在不同子类中实现的方法。
回复 使用道具 举报
当然是可以的,一般学习方法是先学习顶层父类或借口的方法,因为他们有往上抽取的共性的方法。
所以老师的视屏里都是这么来的,Map借口不能new对象,故就找其子类来实现多态的运用。


回复 使用道具 举报
Map<String,String> map = new HashMap <String,String>();
父类的引用指向子类的对象它是多态方式声明是一种好的习惯。
当我们创建的类,使用时,只用到它的超类或接口定义的方法时,我们可以将其索引声明为它的超类或接口类型。
它的好处是,如果某天我们对这个接口方法的实现方式变了,对这个接口又有一个新的实现类,我们的程序也需要使用最新的实现方式,
此时只要将对象实现修改一下,索引无需变化。希望对您有帮助!

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
To 金牌黑马 2013-10-27 16:06:22
报纸
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马