我在网上看的一个java教学视频,是关于HashMap的,里面涉及到向上转型的问题,我把代码修改了,代码如下:
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调用方法不就可以了吗?Java转型HashMapString
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调用方法不就可以了吗?Java转型HashMapString
父类的引用指向子类的对象 这个是为你后面学多态做铺垫的 我当初也是这样的 你见多了就好了 当然你后面理解了多态就懂了 这样写的好处
是一个道理
直接传递也是可以的
import java.util.Hashtable;
import java.util.Map;public class TestUpTrans
{
public static void main(String[] args)
{
Hashtable hash = new Hashtable();
hash.put("001", "001");
hash.put("002", "002");
printSize(hash);
}
private static void printSize(Map map)
{
System.out.println(map.size());
}
}
该类中main方法执行的结果就是【2】