总所周知,接口直接是不能new的。
但接口可以使用实现其接口的引用:
List<String> list=new ArrayList<String>();
我主要是不知道这样做的原理机制,好处。
不要告诉我面向接口编程这样的大话。
求高手解答、讨论。
接口有点像行业标准,把标准定好了,可以有不同的实现。像数据库连接connection就是接口。
可以有mysql和oracle的实现。
个人理解不深,只觉得下面几点...
1.一种约束,一个具体的类可以实现多个接口,每个接口功能不一样,如同时实现 IComparer 排序,IComparable比较,哪个接口的引用将拥有不同的功能。现实生活中,如有一个 理发师接口 和一个 司机接口,理发师执照的说明他可以理发,有驾照的可以开车,有的人厉害可以有两种,它都可以,有的人没有驾照,那他就不应该开车,是违法的,因为这是一种约束,是功能的体现。
2.多态,就是不同的实现,IComparer一个排序接口,我可以实现 倒序、升序 等等不同实现。现实中 一个驾照接口,都的B照、有的是C照等等...
3.一个对接口的引用,如类型是接口,参数、变量等等,可以说出于上面两点的考虑。