首页 > 其他分享 >【知识点】接口和抽象类的区别

【知识点】接口和抽象类的区别

时间:2024-03-26 22:13:01浏览次数:23  
标签:知识点 继承 子类 接口 抽象 抽象类 方法

相同点:

  • 都不能实例化
  • 都可以被实现或者继承
  • 继承或者实现的子类需要实现全部抽象方法,否则需要声明为抽象类

不同点:

不同点 抽象类 接口
声明 abstract interface
继承/实现 extends implements
构造器 可以有构造器 不能有构造器
方法 抽象方法和具体方法 抽象方法和默认方法
方法修饰 可以是任意修饰符 默认public且只能是public
多继承 子类只能继承一个抽象类 子类可以实现多个接口
成员变量 可以任意声明 默认且只能声明为 static final

抽象类通常用来捕捉子类通用特性,是一种模板设计。
接口是对行为的抽象,或者说约定。

选择原则:

  • 行为模型应该用接口而不是抽象类来定义,所以通常优先选用接口,尽量少用抽象类
  • 当即需要定义子类行为,又要为子类提供通用功能时,可以选择抽象类

标签:知识点,继承,子类,接口,抽象,抽象类,方法
From: https://www.cnblogs.com/code-blog/p/18097738

相关文章

  • 分析nginx日志统计接口情况
    一、背景近来打算对后端接口进行优化,所以要先对现有接口的情况进行统计。因为相关业务接口是index.php?action=XXX的形式,所以公司运维的管理平台并不能满足需求,所以要自行处理nginx日志获取接口的情况了。二、处理思路1.nginx日志中不止包含相关接口的日志,所以先要根据关键字......
  • FPGA接口系列——UART
    FPGA接口系列——UART一、UART简介UART是一种采用异步串行通信方式的通用异步收发传输器。这里我们主要弄明白两个问题:①什么是串行通信,与并行通信有什么区别②同步串行通信和异步串行通信有什么区别③我们常说的UART和RS232以及RS485又有什么区别?串行通信和并行通信......
  • 规范 - 接口文档
    作者:Zonezzc最后更新时间:2024-03-2619:13:06​​原则接口的命名最终一定是便于理解的中文。接口的说明中一定包含接口原名如getSellerStandardsProfile,若存在第三方在线接口文档,该原名设置为引向原文的超链接。所有的参数都要有中文注释。命名规范对接口理解不透彻......
  • Temu api接口 获取商品详情 数据采集
    iDataRiver平台https://www.idatariver.com/zh-cn/提供开箱即用的Temu电商数据采集API,供用户按需调用。接口使用详情请参考Temu接口文档接口列表1.获取商品详情参数类型是否必填默认值示例值描述apikeystring是idr_***从控制台里复制apikeycountryst......
  • 规范 - 接口文档
    规范-接口文档作者:Zonezzc最后更新时间:2024-03-2619:13:06​​原则接口的命名最终一定是便于理解的中文。接口的说明中一定包含接口原名如getSellerStandardsProfile,若存在第三方在线接口文档,该原名设置为引向原文的超链接。所有的参数都要有中文注释。命名规范......
  • springboot整合knife4j接口文档
    1、添加knife4j依赖这里是最新版本的依赖,我也会使用这个最新版本的依赖来进行举例。knife4j官网<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-spring-boot-starter</artifactId><version>4.4.0</version></d......
  • 【SpringBoot3+Mybatis】小程序和后台管理系统 员工/分类/菜品/套餐管理 上传文件 CRU
    文章目录一、项目介绍&Github二、技术选型三、开发环境搭建四、员工管理4.1新增员工①sql②对象拷贝DTO与Entity③异常捕获与处理④动态获取当前登录者Id⑤ThreadLocal4.2员工分页查询①请求参数实体与响应数据实体②controller层③service层使用pageHelper......
  • [QLIE] 封包接口Hook
    [QLIE]封包接口Hook这个主题快拖了半个月,中间一直没空写,今天看着实在有点久了,必须写一写了,不然就快忘记了。起因前不久HappyLiveShowUp发了官中,但是又搞的奇奇怪怪的加密,很是无聊,稍微调了下和之前ハミダシクリエイティブ官中是挺像的。steam的dll是用Themida保护的,其......
  • Mybatis的接口映射原理
    1、问题引入在使用Mybaits时,只需要写一个Mapper接口(不用写实现类),并在对应的xml文件中写好sql。然后,Mybatis就自动实现了具体的CRUD方法调用。通常我们使用Mybatis的主要步骤是:构建SqlSessionFactory(通过xml配置文件,或者直接编写Java代码)从SqlSessionFactor......
  • SpringBoot手动取消接口执行方案
    实际开发中经常会遇到比较耗时的接口操作,但页面强制刷新或主动取消接口调用后后台还是会继续运行,特别是有大量数据库操作时会增加服务器压力,所以进行研究测试后总结了一套主动取消接口调用的解决方案自定义注解用于标记耗时接口@Retention(RetentionPolicy.RUNTIME)@Target({El......