【发布时间】:2020-10-20 02:52:54
【问题描述】:
一般而言,抽象被定义为隐藏不必要的信息并仅显示对用户而言必不可少的信息。但是抽象类和接口是如何实现的呢?
【问题讨论】:
-
首先你可以定义它们,然后你将从它们扩展你的类,如果你有飞机顺便使用它们
标签: java oop abstract-class abstraction
一般而言,抽象被定义为隐藏不必要的信息并仅显示对用户而言必不可少的信息。但是抽象类和接口是如何实现的呢?
【问题讨论】:
标签: java oop abstract-class abstraction
通常,这种方法是您只向用户显示您传递回给他们的对象的接口,而不是实现该接口的精确类。接口是必不可少的实现,确切的类是不必要的信息。
【讨论】:
抽象类和接口的目的与隐藏任何东西无关。
接口
您可以将接口视为合同。编译器确保实现此接口的任何非抽象类确实具有该接口中声明的所有方法。实现此接口的类没有任何其他限制。
抽象类
抽象类定义了该类最重要的功能。它是一种骨架。它允许子类提供自己的抽象方法实现。
在某些情况下,目的是重用公共代码。如果在特定情况下有意义,则可以创建默认实现类。但在许多情况下,默认类没有意义。例如,在 Java 中有AbstractCollection。它定义了所有集合类的共同行为。默认集合没有意义,因为一些开发人员可能期望默认实现是一个列表,而其他开发人员则期望一个集合和 smb。将期望它是无序集合(不像列表)并允许重复(不像集合)。
在其他情况下,可以使用抽象类来定义一些不应在子类中更改的核心逻辑。然后可以将公共类中的一些方法设为final。
如果我们比较接口和抽象类,我们可以将接口视为纯抽象,而抽象类更具体,它们通常会实现一些逻辑。
【讨论】: