黑马程序员技术交流社区
标题:
对于Map和HashMap不懂
[打印本页]
作者:
yang_zhi_xiang
时间:
2015-1-26 19:26
标题:
对于Map和HashMap不懂
Map是接口,而HashMap是类,怎么能写成Map map = HashMap();这到底什么意思
作者:
yang_zhi_xiang
时间:
2015-1-26 19:27
写错了,是Map map = new HashMap();
作者:
mengxiang1993
时间:
2015-1-26 19:42
这个是父类引用指向子类对象,是多态,建议楼主看下多态。以后会经常碰到,这样写的好处就是,比如你以后的容器变化,例如变成TreeMap,只需要将代码改成Map map=new TreeMap();是不是很方便啊。
作者:
浅木头
时间:
2015-1-26 19:56
Map map = new HashMap();
这个代码的右边才是真正创建的实例的类型,左边只是表示这个map变量的引用类型,虽然看起来是Map的,但实际上还是HashMap的。
作者:
d7142947
时间:
2015-1-26 23:52
多态 父类引用子类对象
比如
class Fu{
............
}
class Zi extend Fu{
................
}
复制代码
这样实例化子类的时候可以写成
Zi z = new Zi();
或者多态写成 Fu z = new Zi(); 即用父类引用指向子类对象,实际上还是实例化的子类对象
作者:
木羊
时间:
2015-1-27 00:36
d7142947 发表于 2015-1-26 23:52
多态 父类引用子类对象
比如
那么调用方法是用的谁的方法?
作者:
以利亚
时间:
2015-1-27 10:43
这是多态的特点
作者:
潇洒小哥
时间:
2015-1-27 16:07
这是多态,HashMap类实现了Map接口,Map就可以引用HashMap实例对象
作者:
Jaybor
时间:
2015-1-27 17:09
多态的说,毕竟HashMap实现了Map接口
作者:
d7142947
时间:
2015-1-27 21:33
木羊 发表于 2015-1-27 00:36
那么调用方法是用的谁的方法?
编译的时候看父类的 运行的时候看子类的,也就是调用子类的方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2