Java——抽象类与接口的区别

定义区分:

抽象类:抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板

接口:接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情

核心区别:抽象类中可以包含普通方法和普通字段,这样的普通方法和字段可以被子类直接使用(不必重写),而接口中不能包含普通方法,子类必须重写所有的抽象方法

如举例所用的Animal类,此处的Animal类中包含一个name这样的属性,这个属性在任何子类中都是存在的,因此此处的Animal类只能作为以一个抽象类,不应作为一个接口使用

抽象类存在的意义是为了让编译器更好的校验,像Animal这样的类我们并不会直接使用,而是使用它的子类,万一不小心创建了Animal类的实例,编译器会及时提醒我们

抽象类和接口的对比表:

相关推荐
hfhf1531 小时前
电脑突然没有声音的可能原因与应对方法
java
m0_371356152 小时前
【测试框架篇】单元测试框架pytest(5):setup和teardown的详细使用
开发语言·python·单元测试·pytest
锋君2 小时前
C# JObject 快速定位节点值
开发语言·c#
dreams_dream3 小时前
docker启动jenkins,jenkins中调用docker
java·docker·jenkins
半熟的皮皮虾3 小时前
从头开始开发基于虹软SDK的人脸识别考勤系统(python+RTSP开源)(五)补充剩余内容
开发语言·python
计算机-秋大田3 小时前
基于Spring Boot的国产动漫网站的设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·课程设计
站在墙头上4 小时前
java虚拟机(JVM)以及各种参数详解
java·开发语言·jvm
*星星之火*4 小时前
【GPT入门】第11课 FunctionCall调用本地代码入门
java·gpt·openai
Long_poem4 小时前
【自学笔记】R语言基础知识点总览-持续更新
开发语言·笔记·r语言
luckyext4 小时前
串口通信ASCII码转16进制及C#串口编程完整源码下载
开发语言·后端·stm32·单片机·mcu·物联网·c#