接口是不可以被new的,但是有一种写法是 new Person(){},似乎是接口被new了,其实不然,注意后面的{},这其实是匿名内部类。
可以参看链接:http://www.cnblogs.com/yjmyzz/p/3448330.html
为什么不可以呢:我的理解是因为接口本来都是抽象出来的,不是一个具体的类,你现在new 他,相当于把他作为实际的具体的类使用,既然你费尽力气抽象出来他,为什么把他再作为具体的类使用,你抽象他还有什么意义?就像你费尽力气把一个人培养成物理博士,你却不让他发挥所长研究物理,而让他在家种地,那你把他培养成物理博士做什么?你抽象的意义是什么?