接口
1、接口的概念
接口是功能的集合,是Java三大引用数据类型之一。
接口中所有的方法都是抽象方法,没有具体得实现,具体的实现由实现接口的类重写接口中的抽象方法完成。实际上是只在接口中定义了功能,将功能定义和实现进行了分离。
一切事物均有功能,一切事物均有接口。
2、接口的定义
接口的定义关键字为interface。接口文件为.java文件,编译后产生.class文件,可以将接口看成是一种包含功能声明的特殊类。
定义格式:
public interface 接口名 {
抽象方法1;
抽象方法2;
……
}
- 接口中的抽象方法的修饰符为public
- 接口中无法定义普通的成员变量
3、类实现接口
类和接口之间是实现关系,即类实现接口。类实现接口的关键字为implements。
格式:
public class 类名 implements 接口名 {
重写接口中的方法;
}
4、接口中成员的特点
- 接口中定义的变量有固定的修饰符,public static final,所以接口中定义的变量是常量,其值不能被改变
- 接口中定义的方法有固定修饰符,public abstract
- 接口不能创建对象
- 实现接口的子类必须覆盖接口中所有的抽象方法才能实例化
5、接口的多实现
接口的出现解决了多继承的弊端(多继承中,如果多个父类中有一样的方法,子类的实例化对象调用方法时就会产生不确定性,不知道该运行哪个方法主体)
6、类继承类的同时实现接口
子类继承父类,继承来的是都是子类应该具备的基本功能,如果子类想要扩展功能,可以通过接口来实现。
接口的出现解决了单继承的局限性。
7、接口的多继承
类之间只能单继承,接口与接口之间能够多继承。
8、接口的作用
- 接口的出现扩展了功能
- 接口其实就是暴露出来的规则
- 接口的出现降低了耦合性,即设备与设备之间实现了解耦合
9、接口和抽象类的区别
相同点:
- 都位于继承的顶端,被其他类实现或继承
- 都不能实例化
- 都包含抽象方法,其子类都必须重写这些方法
区别:
- 抽象类中可以有普通方法,避免子类重写这些方法,提高代码的复用性;接口中只能有抽象方法
- 类与类之间只能是单继承;接口与接口之间能够多继承;类与接口之间类可以实现多个接口
抽象类与接口的选用:
- 优先使用接口,少用抽象类
- 需要定义子类行为,又要为子类提供共性功能时才使用抽象类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现