Java抽象类与接口:核心区别、使用场景解析

创始人
2025-01-06 07:24:34
0 次浏览
0 评论

JAVA抽象类和接口的区别,使用场景

技术区别:

抽象类可以包含方法的实现,而接口只能包含方法的声明。

一个类只能包含一个抽象基类,但可以包含多个接口。

语义上的差异(这个差异比较重要,也比较难理解)与设计有关。
正确使用和区分抽象类和接口可以使您的设计更加灵活和强大。

抽象类代表类实体,但这种类型的实体不能被实例化。
接口一般不能代表实体,而只能代表功能或特性。

例如,图形类Shape可以派生自三角形、正方形等。
Shape是一个抽象类,表示图形实体,但不能实例化。
它有一个Drawable接口,表示它可以被绘制。
在英语中,shape是名词,drawable是形容词。
这就是语义上的差异。
当然,你必须将Drawable声明为抽象类,将Shape声明为接口,从技术上讲,没有问题,但这方面很奇怪,很难理解。

如果你觉得不懂,可以提问。
这两个概念有些模糊。

学习设计是一件好事。
设计意识的好坏将极大地影响你在软件工程领域所能达到的高度。

抽象类和接口的区别在哪里?

1.不同的方法

接口方法默认是public的,并不是所有的方法都可以在接口中实现(从Java8开始,接口方法可以有默认的实现),而抽象类可能没有实现。
-抽象方法。

2.质量不同

接口中除了static和final变量外不能有其他变量,但抽象类中则不一定。

3.不同数量

一个类可以实现多个接口,但只能实现一个抽象类。
接口本身可以通过extends关键字扩展多个接口。

4.修饰符不同

接口方法的默认修饰符是public,抽象方法可以有public、protected、default修饰符(抽象方法是为了重写,不能用private关键字修饰)。

5.不同层次的设计

抽象是类的抽象和模型的设计,而接口是行为的抽象和行为的规范。

扩展信息;

接口可以是命名空间或类的成员,并且可以包含以下成员的签名:

方法属性索引器事件接口可以继承一个或多个基接口。

当基类型列表包含基类和接口时,基类必须是列表中的第一个元素。

实现接口的类可以显式地实现接口的成员。
显式实现的成员不能通过类实例访问,而只能通过接口实例访问。

参考来源;百度百科-抽象类

百度百科-接口

热门文章
1
c语言有三维数组吗 C语言三维数组初始化详细方法和步骤如下:1第一步,需要定义一个数组。常见的数组类...

2
js字符串包含某个字符串的个数 js问题:求字符串中某个字符出现的个数的方法?看看是否满足你的需求(x);}pu...

3
轻松调整SQL Server 2008表... sql2008表格怎么只能编辑前两200行200线是默认设置,并且仅在号码开通时...

4
C语言基础解析:从Hello World... C语言的基本要素有哪些?基本的C语言格式可以参考基本的helloworld程序。...

5
Python排列组合与循环运用技巧解析 怎样使用Python进行排列组合?对于这类问题,我们可以使用分割循环来执行转换和...

6
C语言for循环技巧:非C字符位置记录与... C语言for循环问题求解.在for中,我记录了要写入的非c字符的位置。仅当字符不...

7
Hive内置函数全解析:数学、字符串、日... 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转...

8
Python随机数生成技巧:轻松输出任意... python通过键盘输入随机数种子,产生50个[0,100]之间的随机正整数,然...

9
C语言实现字符串倒序输出教程 请教C语言字符串倒序输出#include#includevoidmain(){c...

10
C语言一元二次方程解答器实现与优化 这个c语言程序哪里有问题,我想写一个一元二次方程解答器。#include#inc...