美文网首页
接口和抽象类的区别

接口和抽象类的区别

作者: 霖在 | 来源:发表于2024-01-24 08:36 被阅读0次

(一)语法上的区别:
1.接口中的方法必须都是抽象的public abstract,不能有方法体;而抽象类中可以定义普通方法,可以有方法体;
2.接口中的属性必须都是public static final的常量,而抽象类无此限制;
3.接口支持多实现,而抽象类只允许单继承。

(二)实质性区别:
1.接口是对类的行为的约束,约定了一个类应当拥有哪些行为(方法)。它只关心行为的有无,而不关心行为具体的实现;
抽象类则是对公共本质的提取,是对本质和共同特性的抽象,其设计目的是代码的复用
2.接口表现的是“like a”的关系。比如,定义一个接口“flyable”,其中有一个方法“ fly”。那么bird类可以实现这个方法,因为鸟可以飞;aircraft类也可以实现这个方法,因为飞行器也可以飞,但是这两个类的本质是截然不同的。一个事物可以与多种其他事物相似,所以接口支持多实现;
而抽象类表现的是“is a”的关系。比如,bird, cat, dog类都可以继承自animal类,因为他们的本质都是动物,都有很多动物的共性。比方说这个类有个方法breathe, 那么这些类都可以直接复用这个方法的代码。因为一个事物的本质只能有一个,所以抽象类只允许单继承。
3.综上所述,当你关注事物的本质的时候,使用抽象类;当你关注操作和行为的时候,使用接口;
4.抽象类的功能要远超过接口,但是定义抽象类的代价很高,因为只允许单继承,所以抽象类必须编写出子类所有的共性;而接口相比较而言更为灵活,在设计阶段可以降低难度

相关文章

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • 接口和抽象类

    接口和抽象类的区别? 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制...

  • 抽象类和接口的区别

    以下两篇文章介绍了接口和抽象类的概念接口概念抽象类概念 抽象类和接口的区别: 抽象类:需要使用abstract关键...

  • 接口和抽象类的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类...

  • Java基础 (7) 抽象类和接口

    抽象特性的具体体现方式。1)抽象类区别和接口的区别2)抽象类的意义3)抽象类与接口的应用场景4)抽象类是否可以没有...

  • Java--接口和抽象类

    ·为什么需要接口?接口和抽象类的区别?  接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束...

  • 浅谈抽象类和接口的区别

    最近我看了一些接口和抽象类的区别,在这里我将我的所总结的内容分享给大家。 抽象类和接口的区别 1.抽象类使用abs...

  • Java 接口知识点

    接口的特性 函数式接口 抽象类和接口区别 Lambda表达式 java常用接口

  • Kotlin 零基础学习 接口和抽象类

    接口:接口就是暴露一种物体与另外一种物体沟通的方法 抽象类 接口 这么看接口和抽象类没什么区别,抽象类能干的接口也...

  • 抽象类和接口区别

    区别 接口 抽象类

网友评论

      本文标题:接口和抽象类的区别

      本文链接:https://www.haomeiwen.com/subject/fcnpodtx.html