java - java中抽象类和接口如何实现抽象?
问题描述
一般来说,抽象被定义为隐藏不必要的信息并只显示对用户来说必不可少的内容。但是抽象类和接口是如何实现的呢?
解决方案
抽象类和接口的目的与隐藏任何东西无关。
接口
您可以将接口视为合同。编译器确保实现此接口的任何非抽象类确实具有接口中声明的所有方法。实现此接口的类没有任何其他限制。
抽象类
抽象类定义了该类最重要的功能。它是一种骨架。它允许子类提供它们自己的抽象方法实现。
在某些情况下,目的是重用公共代码。如果在特定情况下有意义,则可以创建一个默认实现类。但在许多情况下,默认类没有意义。例如,在 Java 中有AbstractCollection
. 它定义了所有集合类的共同行为。默认集合是没有意义的,因为一些开发人员可能期望默认实现是一个列表,其他人期望一个集合和 smb。将期望它是无序集合(不像列表)并允许重复(不像集合)。
在其他情况下,可以使用抽象类来定义一些不应在子类中更改的核心逻辑。然后可以将公共类中的一些方法设为final。
如果我们比较接口和抽象类,我们可以将接口视为纯抽象,而抽象类更具体,它们通常会实现一些逻辑。
推荐阅读
- javascript - 合并json数组并生成键值对
- angular - 重新订阅 Angular 请求
- javascript - 为什么我没有得到 1 作为没有在线用户?
- python - 如何获取调用方法的类?
- python - 熊猫根据列名查找各个列的编号顺序
- javascript - 如何显示从firestore检索到的时间戳类型元素
- selenium - 尝试使用 Selenium (Appium) 检查平板电脑中是否存在滚动条
- javascript - 如何在空手道框架中合并多个数组?
- javascript - Ajax Post 不加载页面,即使日志显示调用
- node.js - 如何使 nodemon 与 WSL 2 一起使用?