接口、多态

简介: 接口概念:因为每个类只有一个直接的父类,若一个类同时有两个父类,如:带橡皮的铅笔作用:1.拓展功能2.定义约束规范3.程序的解耦(低耦合,高内聚)定义格式: interface 接口名 { }实现接口的格式:class 类名 implement 接口{}接口注意的细节:1.

接口

概念:因为每个类只有一个直接的父类,若一个类同时有两个父类,如:带橡皮的铅笔
作用:
1.拓展功能
2.定义约束规范
3.程序的解耦(低耦合,高内聚)
定义格式:

  interface 接口名 {  

  }

实现接口的格式:

class 类名 implement 接口{

}

接口注意的细节:
1.接口其实是特殊的类
2.接口中的成员变量都是属于常量,默认的修饰符是public static final
3.接口中的方法都是抽象的方法,默认的修饰符是public abstract void
4.接口是不能用于创建对象的
5.接口没有构造方法,接口的变量都是常量,接口的方法都是抽象的方法
6.如果一个非抽象类实现一个接口时,必须实现接口中的所有方法

接口与接口之间的关系

细节:
1. 一个接口是可以继承多个接口的

接口与类之间的关系

细节:
1. 非抽象类实现一个接口时,必须要把接口中所有方法实现
2. 一个类可以实现多个接口
疑问:java支持多实现接口为什么不能支持多继承呢?
因为如果支持多继承的话,那么假设多个父类中有相同的成员,那么子类就不知道到底用哪一个,但是接口只需要使用实现的那一个即可
3. 抽象类实现接口的时候,可以实现接口中的方法,也可以不实现接口的方法

多态

概念:
父类的引用类型变量指向了子类的对象或者是接口的引用类型变量指向了接口实现类的对象(一个对象具有多种形态)
前提:
必须存在继承或者实现关系
注意的细节:

1.多态情况下,子父类存在着同名的成员变量时,默认会访问父类的成员变量
2.多态情况下,子父类存在着同名的非静态函数时,会默认访问子类的成员函数
3.多态情况下,子父类存在着同名的静态函数时,会默认访问父类的成员函数
4.多态情况下,不能访问子类特有的成员
总结:
多态情况下,子父类存在同名的成员时,默认都是会访问父类的成员,只有在非静态函数下会访问子类的成员变量

应用场景

  1. 用于形式参数的时候,可以接收更多类型的参数
  2. 多态用于返回值类型的时候,可以返回多个类型
  3. 多态情况下,不能访问子类特有的成员

好处

  • 提高拓展性
相关文章
|
10月前
|
人工智能 自然语言处理 并行计算
Maya:基于 LLaVA 开发的多模态小模型,能理解和处理八种语言,适用于低资源环境
Maya 是一个开源的多语言多模态模型,能够处理和理解八种不同语言,包括中文、法语、西班牙语、俄语、印地语、日语、阿拉伯语和英语。该模型基于LLaVA框架,通过指令微调和多语言数据集的预训练,提升了在视觉-语言任务中的表现,特别适用于低资源语言的内容生成和跨文化理解。
394 16
Maya:基于 LLaVA 开发的多模态小模型,能理解和处理八种语言,适用于低资源环境
|
11月前
|
存储 缓存 Java
LRU是什么?如何实现?
LRU(Least Recently Used)是一种常用的缓存淘汰策略,其核心思想是:如果一个数据在最近一段时间内没有被访问到,那么在未来它被访问的可能性也很小。因此,当缓存满了的时候,最久未使用的数据会被淘汰
|
11月前
|
传感器 人工智能 5G
|
机器学习/深度学习 人工智能 监控
探索AI技术在医疗健康领域的应用与挑战
【10月更文挑战第13天】 本文探讨了人工智能(AI)在医疗健康领域的多种创新应用,包括疾病诊断、个性化治疗、患者监护和药物研发等方面。同时,文章也分析了当前AI技术在实际应用中面临的挑战,如数据隐私、算法透明度、监管问题等,并提出了一些可能的解决思路。通过综合分析,本文旨在为读者提供一个关于AI在医疗领域应用现状及未来的全面视角。
275 3
绘梦相似,AIGC图生图:相似图像生成模型魔搭社区开源体验
日常我们在艺术创作和产品设计中,需要多张风格相似的图片
|
定位技术 C++ Python
ArcMap软件卡在加载界面且闪退无法打开的多种解决办法
ArcMap软件卡在加载界面且闪退无法打开的多种解决办法
761 1
|
存储 机器学习/深度学习 数据挖掘
时序数据库 TDengine 与高级分析软件 Seeq 集成,来看看操作手册
通过 TDengine Java connector,Seeq 可以轻松支持查询 TDengine 提供的时序数据,并提供数据展现、分析、预测等功能。本文将对此进行介绍。
548 2
|
数据可视化 小程序 前端开发
【iVX】十五分钟制作一款小游戏,iVX真有怎么神?
【iVX】十五分钟制作一款小游戏,iVX真有怎么神?
451 0
|
Java Linux 开发工具
SpringCloud Hoxton.SR3版本 配置中心config搭建教程
SpringCloud Hoxton.SR3版本 配置中心config搭建教程
409 0
SpringCloud Hoxton.SR3版本 配置中心config搭建教程