在声明一个新对象时,我应该什么时候使用接口和实现?

Mau*_*lik 0 java

我是 Java 新手。我想知道什么时候应该使用基类的引用,什么时候应该创建一个新对象。我的意思是我们可以写

List list = new ArrayList();
Run Code Online (Sandbox Code Playgroud)

什么时候

ArrayList list = new ArrayList();
Run Code Online (Sandbox Code Playgroud)

如何确定使用什么???

Jig*_*shi 5

使用

List list = new ArrayList();

始终学习使用界面编程。明天你就可以有新的实施

  • @maulik - 请注意,当您声明方法参数的类型时,这更加相关。大多数情况下,对于字段/局部变量,只需更改一行的两个部分而不是一个部分,但是特定的方法参数可以阻止某人调用有用的方法,只是因为他们碰巧有一个“LinkedList”而不是“ArrayList” `。根据该方法的作用,也许它应该只坚持“Iterable”(例如,如果它只是对每个元素执行某些操作),以便甚至可以使用“Set”或用户创建的集合。 (2认同)

asg*_*sgs 5

两者都可以使用,但首选前者,因为使用对接口或超类型(列表)的引用来调用实现的方法总是更好。前者不依赖于实现,并且不需要在实现(ArrayList)发生变化时更改代码,但后者需要您在实现更改为ArrayList以外的任何内容时更改代码。