其实这个问题引申出来很基本的设计原则就是“面向接口编程,而不是面向对象编程”,我们一般都经常用到,比如List l = new ArrayList();但这也存在一个问题,如果l要调用ArrayList中有的方法但List中没有的方法,就会出错,意思就是说这样做限制了l的范围,这就是为什么我们不这样写的原因:Object o = new ArrayList();
to: goldenhua(深深地爱上了你) 楼主说的是: --------------------- 这样的话,会好一些,而Map是HashMap,TreeMap都继承的接口,我的理解对不? --------------------- 他有说list,LinkedList,arraylist了吗? HashMap,TreeMap都最终实现的Map接口有不对吗? 而且要楼的代码的写法正是OO的思想之一。你不服你说你的意见,骂人干什么?
如果想最基本的
就写成Object,肯定能用
忘了Object不支持你的父类的特有方法了
但如果需要传递对象,不调用方法,用Object肯定可以
class A
{
private Map b;
pbulic Map getB{
return b;
}
}
从这段代码能看出Map是抽象类还是接口吗?能比较二者的优劣吗?
而应当用点"中庸", "过犹不及"。自我感觉楼主讲的是很有道理的。
不过没什么必要讲出来,因为这是基础知识。
List list = new LinkedList();以后可以换成ArrayList等等
而后面的代码一行也不用改因为用的是List接口。
你有什么好意见呢?最瞧不起你这种人,感觉别人说错了,说个你的意见,张口脏话有意思吗?
请问,你的意思是说
Map m = new HashMap();
这样的做法不好吗?还是别的什么意思呢?
学习ing...
---------------------
这样的话,会好一些,而Map是HashMap,TreeMap都继承的接口,我的理解对不?
---------------------
他有说list,LinkedList,arraylist了吗? HashMap,TreeMap都最终实现的Map接口有不对吗? 而且要楼的代码的写法正是OO的思想之一。你不服你说你的意见,骂人干什么?