Java 具体类、抽象类、最终类、接口之间的区别
原文:https://www.studytonight.com/java/different-classes-and-interface.php
类、接口、抽象类、最终类是 Java 语言的重要组成部分。在讨论它们之间的差异之前,让我们先来简单介绍一下所有这些。这样我们就能知道这些术语指的是什么。
混凝土类
一个实现了所有方法的类,如果没有主体就没有方法,称为具体类。
换句话说,一个只包含非抽象方法的类将被称为具体类。
抽象类
使用抽象关键字声明为抽象的类称为抽象类。抽象包含抽象方法并用于实现抽象,这是 OOP 编程的一个重要特征。无法实例化抽象类。
更多细节,可以参考我们的详细教程。点击此处
连接
接口是一个类的蓝图,用于在 Java 中实现抽象。接口包含抽象方法和默认的私有方法。我们无法创建接口的对象。接口可以用来实现 Java 中的多重继承。
更多细节,可以参考我们的详细教程。点击此处
期末班
Final 类是一个类,它是使用 final 关键字声明的。Final 类用于防止继承,因为我们不能继承 final 类。我们可以创建它的对象,也可以创建静态和非静态方法。
更多细节,可以参考我们的详细教程。点击此处
在这个表中,我们根据一些属性来区分类、抽象类、接口等,如:访问修饰符、静态、非静态等。
| | 混凝土类 | 抽象类 | 期末班 | 连接 |
| 施工方 | 是 | 是 | 是 | 不 |
| 非静态(方法) | 是 | 是 | 是 | 是 |
| 非静态(可变) | 是 | 是 | 是 | 不 |
| 访问修饰符(默认) | 默认 | 默认 | 默认 | 公众 |
| 对象声明 | 是 | 是 | 是 | 是 |
| 实例化 | 是 | 不 | 是 | 不 |
| 关系 | 两者都有 | 信息系统 | 聚合 | 信息系统 |
| 最终声明 | 可能是,也可能不是 | 可能是,也可能不是 | 可能是,也可能不是 | 仅最终 |
| 抽象声明 | 不 | 可能是,也可能不是 | 不 | 完全抽象的 |
| 继承关键字 | 延伸 | 延伸 | 没有继承权 | 工具 |
| 过载 | 是 | 是 | 是 | 是 |
| 覆盖 | 不 | 不 | 不 | 不 |
| 超级关键字 | 是 | 是 | 是 | 不 |
| this
关键字 | 是 | 是 | 是 | 是 |
| 字节码 | 。班级 | 。班级 | 。班级 | 。班级 |
| 匿名类 | 不 | 是 | 不 | 是 |
| 用于申报的关键字 | 没有关键字 | 抽象关键字 | final
关键字 | 接口关键字 |
| 继承 | 单一的 | 单一的 | 没有继承权 | 多重 |
| 静态变量 | 是 | 是 | 是 | 是 |