提问人:TorusWithSprinkles 提问时间:7/2/2020 更新时间:7/2/2020 访问量:473
当您仍然需要在实现接口的每个类中单独定义每个方法体时,接口有什么好处?[复制]
What is the benefit of interfaces when you still need to define each method body separately in each class that implements it? [duplicate]
问:
我试图围绕界面进行思考,并且我一直在阅读很多关于该主题的类似问题/答案,但它仍然没有与我一起点击。我明白界面的字面含义,但我不明白你为什么要使用它。
因此,一个接口包含一堆空函数,然后在一个类中实现该接口。但我不明白的是,您仍然必须为您从接口获取的任何函数编写一个完整的函数声明。假设你的接口中有一个函数'void printHello()',并在一个类中实现了该接口。你仍然需要写:
public void printHello() {
System.out.println("Hello!");
}
这是一个完整的函数声明。您可以删除“implements interface”命令,实际上什么都不会改变,您仍然会有一个工作函数“printHello()”。所以从功能上讲,接口不是基本上什么都不做吗?为了更进一步,你可以有另一个类也实现相同的接口,但你可以让同一个函数做一些完全不同的事情:
public void printHello() {
System.out.println("Bababooey!");
}
因此,它不像是预定义函数,因此您可以像类/对象那样在任何地方调用它们。如果是这种情况,界面真正提供什么?
答:
1赞
jwpol
7/2/2020
#1
通过使用接口,您将逻辑实现的责任外包给实现该接口的类,这称为 API。
假设你有一个接口,它是由一堆不同的类实现的,比如 或 。通过使用,您可以灵活地利用任何根据您的特定需求而变化的实现,并在以后简单地切换到不同的实现,而您的代码保持不变 - 您仍然使用 .因此,做一个你不感兴趣的方法,或者你不关心它是如何完成的,你只想在集合中添加一个元素,以及它是如何在内部实现的,这不是你的事。List
LinkedList
ArrayList
List
List
List
add
评论
compareTo
Comparable
Comparable