这个问题属于java面向对象的内容,父类引用指向子类对象
可以这样理解:
根据面向对象的思想,用接口定义变量,具有一定的灵活性,比如你想定义一个map,你可以写成以下这种常见的方式,
Map<String,String> map = new HashMap<String,String>();
当然你也可以写成HashMap<String,String> map = new HashMap<String,String>();但是这样写的结果是不够灵活,
用第一种方式定义的变量map可以重新赋值,即map=new TreeMap<String,String>();实现变量的重用。
但是如果采用第二种方式定义的话,那map就只能赋值HashMap类的对象,如果程序需要一个TreeMap对象,那只能重新new一个TreeMap了。 |