Map<String,String> m=new Map<String, String>();为什么不能这么写???
Map是个接口,HashMap是它的实现类。Map 是接口,是不能实例源化的,所以只能使用其实现类来实例化。
只不过一般习惯在前面使用接口来进行创建。一般情况下,都是用接口来声明的。用Map的好处是new后面可以跟其他的实现,不一定是HashMap,可以跟其他的。用HashMap声明的话,new后面貌似就只能跟HashMap了。
扩展资料
接口的声明
1、接口名称第一个字符必须是I。
2、接口中的方法不能有访问修饰符,方法体(方法的具体实现):可以有方法参数和方法返回值。
3、接口中可以定义方法、属性、索引器、事件,不可以定义字段、运算符重载、构造、析构函数、static关键字。
4、实现接口中的方法时,需要添加访问修饰符。
5、如果一个类继承的有类和接口时,那么类一定要放到第一位置上。
6、如果多个接口中包含后相同方法名,的方法,我们使用隐式显示接口后,不知道这个显示的是哪个接口的方法,这个时候就需要。
显示实现接口。显示实现接口 void IInterface.Add(){},需要指定那个接口里面的方法,调用的时候需要把子类转换成父类
(接口)去调用:calss a=new class(); Interface ic=(interface)a;ic.Add();
Map 是接口哈 不能实例化的 ,只能使用其实现类来实例化
Map<String,String> m = new HashMap<String, String>();
关于Map的具体方法和变量, 具体参考官网API