抽象类、接口的区别和相似点(一)

简介: 抽象类、接口的区别和相似点(一)

🪂 接口的实现和方法引用

  接口的实现: 接口无法实现接口但是可以继承接口或者类,类使用implements关键字实现接口,一个类可以实现多个接口使用逗号隔开。接口中定义了抽象方法,实现接口的类必须重写这个接口中的所有抽象方法(包括通过extends继承来的抽象方法),否则这个类就必须定义成抽象类

image.png就近引用、类优先、接口冲突原则:

 ① 如果一个类的超类和超类的超类中定义了一个同名变量或者方法的话,由于就近原则这个类中引用的就是超类的变量或者方法,如果子类中也有的话就近调用子类的image.png  ②类和接口是一个同一级的概念,如果一个类的超类和它实现的接口中定义一个同名变量,这就会导致这个类中变量的引用不明确而报错,但是如果是方法的话就默认类优先原则调用超类中的方法  

image.png③还有一种就是一个类实现多个接口中有同名变量或方法,由于接口冲突此时引用这个变量或者方法就会报错,需要重写该方法或者重定义该变量

image.png

 总结来说同名情况下,多重继承变量方法都就近,一接口一超类变量报错、方法类优先,多实现接口冲突


🪂 为什么使用接口

  可能有的小伙伴要问了,既然抽象类跟接口都可以定义抽象方法,它们的子类或者实现类也都必须实现这个抽象方法,那么为什么不直接使用抽象类,而是大费周折的再引入接口的概念呢?抽象类毕竟是个类,类的话就只能继承一个抽象超类,但是一个类可以实现无数多个接口,也就是说接口弥补了Java语言只能单继承的局限性。

 接口的使用很广泛,比如想要实现序列化就要实现Serializable 接口,想要自定义对象的排序规则就要实现Comparable接口,重写CompareTo方法……


相关文章
|
弹性计算 负载均衡 关系型数据库
阿里云产品近期优惠
阿里云提供多种售卖模式,包括按量付费、按量付费+资源包/节省计划及包年包月。权益中心为不同客户提供丰富优惠:飞天免费试用计划、99实例/计划、初创企业上云补贴及高校师生专属优惠。具体方案详询阿里云官网权益中心。各类优惠活动的具体条件与折扣力度各异,用户可根据自身需求在阿里云权益中心查看并领取相应权益。
|
设计模式 算法 搜索推荐
C++数据结构设计:理解并选择策略模式与模板特化
C++数据结构设计:理解并选择策略模式与模板特化
351 2
|
机器学习/深度学习 算法
【计算理论】计算复杂性 ( 计算理论内容概览 | 计算问题的有效性 | 时间复杂性度量 | 输入表示 | 时间复杂度 )
【计算理论】计算复杂性 ( 计算理论内容概览 | 计算问题的有效性 | 时间复杂性度量 | 输入表示 | 时间复杂度 )
233 0
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
282 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
404 38
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
669 220