我们无法创建接口的实例。
但为什么Java API中的Arrays.asList(Object[] a)
会返回List
(List
作为接口?)
谢谢!
答案 0 :(得分:3)
它创建一个实现接口的类的实例。
你不知道那门课是什么;它甚至可以每隔一个星期二使用一个不同的班级(它没有) 您只需通过界面使用该类。
答案 1 :(得分:2)
Java和OOO编程通常允许您定义应该如何使用对象(即对象的接口),因此只有库实现者需要担心事物实际工作方式的血腥细节。这就是为什么永远不会返回一个类本身而只是一个接口的好习惯,除了更好的可维护性之外,它还允许您在为应用程序编写测试时使用模拟或存根对象。
Java特别让您在飞行中创建一个接口实现。即你可以做类似
的事情return new List() { boolean add() {...} void addAll {...} ... }
对于像List这样的复杂接口来说,这当然是一种过度杀伤,但实际上对于较小的接口非常方便。