java接口和新类

时间:2016-04-15 09:56:20

标签: java class interface abstract

我无法理解一件简单的事情。 示例:A是接口,B是正确实现的类A. 究竟意味着做什么剂量:

A name = new B(some_argument); 

我看到很多人使用这个而不是

B name = new B(some_argument); 

但我无法弄清楚用接口制作物体的剂量是多少。 为什么他们这样做?它们之间有一些差异吗? 有时一个比其他更好? 例如相反的剂量不起作用

B name = new A();

1 个答案:

答案 0 :(得分:2)

从技术上讲,两者都有效。

大多数人使用第一个解决方案(你也应该这样做)的原因是接口为一类类定义了某个契约/ API。 这意味着当你不知道它的实现或者实现是可交换的时候使用接口。

因此,对接口进行编码而不是针对真正的特定实现是使代码可交换和通用的最佳方法,这有助于您模块化代码,尽可能降低类之间的硬链接依赖性并使代码生成可维护性。

此外,还可以使用接口向类添加其他功能,因为您可以实现多个接口,但只能扩展一个类。

一个实际的例子: 想想插件的SDK。它定义了一些接口。 当你开发应用程序/ sdk两年后,另一个人想要插件的实现时,你想如何调用实现这个接口的类的函数? ;)

相关问题