我最近看到了这种方法,我无法理解这是不一个好习惯。其中一些原因是:
依赖项,如果在界面中添加新方法,则所有其他类都必须实现它;
内存使用情况,(我在这里不确定)当实例它来自这个类的对象时,内存使用率会高于你只有一个关联关系;
我认为有些语言不允许出现这种功能,但是对于Java我并不十分肯定。任何人都可以解释为什么我们应该在一个类中实现多个接口或为什么我们不应该?
谢谢!
答案 0 :(得分:3)
此处没有拇指规则,您建议的任何一点都不适用。事实上,你的第一点并没有意义,而你的第二点只是一个错误的猜测。
如果你看一下JDK类,你可以很容易地看到一个类实现了多少(和哪些)接口的基础。例如,许多集合类至少实现which cabal
及其各自的集合接口(Iterable
,List
,Set
等。)
这是一个设计选择,虽然没有什么可以阻止你创建Map
Runnable
,但你需要有意识地选择创造一些奇怪的东西。
提到的接口List
方法是一种机制,允许在保持向后兼容性的同时改进现有类(Java的一个重要设计方面)。
因此,它不是在查看设计时计算的接口数量。
答案 1 :(得分:1)
回应您的第一点:在JDK 8中,您可以将接口方法声明为default
并在接口中提供实现,以便所有实现类都不必实现新方法(它们可以尽管如此,如果他们喜欢)。
某些语言允许类的多个超类,但Java不允许。因此,由于这种限制,Java允许多个接口。
答案 2 :(得分:1)
首先,您说"如果您在界面中添加新方法,则所有其他类都必须实现它"。
所以,如果你不想这样写,你可以使用抽象类。我认为这不是界面问题。那是关于Desgin模式。你应该了解它。如果您非常了解OOP概念,则多个接口实现非常好。