抽象类 与 接口 的区别

前言

这个知识点我之前就已经学过,但是我学的半桶水,就是只理解了比较表面的意思。我第一次面试的时候,面试官刚好就问了我这个问题,我一紧张,回答的磕磕绊绊的,很是尴尬。之后我就反思,发现其实我还是没有搞懂这两者真正的区别 ,或者是说我之前以为懂了只是懂了个表面,没有真正深入理解。今天刚好复习到这个知识点,就顺便写一篇文章梳理一下这个两个知识。

接口

我们先来讲讲抽象类。比如说有一个类叫 Animal,然后你想声明一个 eat() 方法并实现这个方法,但是你不知道怎么实现。其实你也想实现,但是这个方法你都不知道怎么实现,不知道写什么好。猫吃猫粮,狗吃狗粮,猪吃猪粮,动物吃什么粮?你自己也想实现,只是你都不知道怎么实现,因为你怎么实现都不对。

这个时候,干脆就不实现了,就声明这个方法算了,摆烂吧,让子类继承这个父类后,子类来实现这个 eat() 方法。比如说有一个子类 cat,这个 cat 类实现了这个 eat() 方法,方法内容是“猫吃猫粮”。又有一个子类 dog,它自己也实现了父类的 eat() 方法,方法内容是“狗吃狗粮”。反正不同的子类实现这个 eat() 方法要实现出自己的特色出来。抽象类可以实现多态。

而接口其实和抽象类很像,但是感觉接口更多的是用来定义规范。比如说我之前做的那个电商支付双系统项目,有一个用户注册登录模块,然后 service 层里面有一个接口,这个接口定义了两个方法:用户注册方法,用户登录方法。就是这个图:

让子类去实现这两个方法就好了。这样可以做到代码解耦,可扩展性强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/586172.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress外贸建站Astra免费版教程指南(2024)

在WordPress的外贸建站主题中,有许多备受欢迎的主题,如Avada、Astra、Hello、Kadence等最佳WordPress外贸主题,它们都能满足建站需求并在市场上广受认可。然而,今天我要介绍的是一个不断颠覆建站人员思维的黑马——Astra主题。 原…

注册接口和前置SQL及数据生成及封装

注册接口 演示注册接口的三步操作:【注册流程逻辑】 第一步:发送注册短信验证码接口请求 请求方法: put 请求地址:http://shop.lemonban.com:8107/user/sendRegisterSms 请求参数:{“mobile”:“13422337766”} 请求头…

[实时流基础 flink] 窗口

在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。 文章目录 6.1 窗口的概念6.2 窗口的分类**1&#x…

C语言第三十八弹---编译和链接

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 编译和链接 1、翻译环境和运行环境 2、翻译环境 2.1、预处理(预编译) 2.2、编译 2.2.1、词法分析 2.2.2、语法分析 2.2.3、语义分…

rs485自动收发电路

R/RO:receive/receive out,接收,连接单片机的 rx D/DI:drive/drive in,驱动,连接单片机的 tx 自动控制电路的目的就是在 tx 空闲(空闲为高并)时拉低 RE 和 DE,工作&…

open Gauss 数据库-04 openGauss数据库日志管理指导手册

发文章是为了证明自己真的掌握了一个知识,同时给他人带来帮助,如有问题,欢迎指正,祝大家万事胜意! 目录 前言 openGauss 数据库日志管理 1 实验介绍 2 实验目的 3 系统日志 3.1 运行时日志 3.2 安装卸载时日志…

gin源码分析(1)--初始化中间件,路由组与路由树

目标 关于gin.Default(),gin.New(),gin.Use()group与子group之间的关系,多group与middleware之间关系中间件的类型,全局,group,get,不同类型的中间件什么时候执行。中间件 next 和abort行为如何…

3款必知的AI写作软件,智能写文效率高

在当今信息爆炸的时代,写作已经成为人们生活和工作中不可或缺的一部分。然而,随着人们对高效率和高质量写作需求的不断增加,人工智能写作软件应运而生。这些AI写作软件凭借其强大的语言处理能力和智能算法,为写作者们提供了全新的…

郭天祥新概念51单片机(第四期读书笔记)

时钟周期、状态周期、机器周期、指令周期与晶振频率之间的关系 1、晶振频率与脉冲的关系 假设单片机的晶振频率是12MHz,那么它的一个脉冲为1/12微秒;晶振单位时间发出的脉冲则为: 12 ∗ 1 0 6 12*10^6 12∗106。 假设单片机的晶振频率是4MH…

LeetCode-240. 搜索二维矩阵 II【数组 二分查找 分治 矩阵】

LeetCode-240. 搜索二维矩阵 II【数组 二分查找 分治 矩阵】 题目描述:解题思路一:从左下角或者右上角元素出发,来寻找target。解题思路二:右上角元素,代码解题思路三:暴力也能过解题思路四:二分…

成都直播基地 天府新区产业园能获得哪些政府支持

为了推动成都直播产业的快速发展,政府出台了一系列政策措施,为成都直播基地提供了全方位的支持。本篇文章将为您具体解析入驻成都直播基地 天府新区产业园 天府锋巢直播产业基地都能获得哪些政府支持。 首先,天府新区作为成都市的重要发展区…

Three.js——创建场景、渲染三维对象、添加灯光、添加阴影、添加雾化

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…