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

定义区分:

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

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

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

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

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

抽象类和接口的对比表:

相关推荐
MicoZone2 分钟前
四、生活常识
java
MaCa .BaKa3 分钟前
39-居住证管理系统(小程序)
java·vue.js·spring boot·mysql·小程序·maven·uniapp
Dxy12393102168 分钟前
Python经典算法实战
开发语言·python·算法
cui_hao_nan11 分钟前
lua脚本实战—— Redis并发原子性陷阱
java·lua
争不过朝夕,又念着往昔11 分钟前
Lua基础语法
开发语言·junit·lua
五步晦暝16 分钟前
【排序算法】典型排序算法 Java实现
java·算法·排序算法
Ryan-Joee17 分钟前
全局异常处理器
java·全局异常
Fanxt_Ja21 分钟前
通过上传使大模型读取并分析文件实战
java·人工智能·spring boot·语言模型·状态模式·spring ai
le16161625 分钟前
TCP建立连接为什么不是两次握手,而是三次,为什么不能在第二次握手时就建立连接?
java·网络·tcp/ip·面试
珹洺39 分钟前
MyBatis实战指南(三)MyBatis常用配置详解(XML配置,环境配置,类型别名,属性与映射器)
xml·java·运维·数据库·sql·tomcat·mybatis