接口使用细节
1)接口不能被实例化
2)接口中所有的方法是public方法,接口中抽象方法,可以不用abstract修饰
void aaa() 实际上 abstract void aaa();
3)一个普通类实现接口,就必须将该接口的所有方法实现
4)抽象类实现接口,可以不用实现接口的方法
5)一个类可以实现多个接口
6)接口中的属性,只能是final的,而且是public static fuinal修饰符。比如 int a = 1; 实际上是 public static final int a = 1;(必须初始化)
7)接口中属性的访问形式:接口名.属性名
8)一个接口不能继承其它的类,但是可以继承多个别的接口
9)接口的修饰符,只能是public或默认
实现接口和继承类的比较:
小猴子继承了老猴子,所以会爬树。但是要想飞,得实现鸟接口,要想游泳,得实现鱼接口。接口实现像是对单继承的补充
1)接口和继承解决的问题不同
- 继承的价值主要在于:解决代码的复用性和可维护性
- 接口的价值主要在于:设计,设计好各种规范(方法)。让其它类去实现这些方法。即更加的灵活
2)接口比继承更加灵活
接口比继承更加灵活,继承是满足 is a 的关系,而接口只需满足 like a 的关系
3)接口在一定程度上实现代码解耦(接口规范性+动态绑定)
posted on 2021-05-22 14:20 Love&Share 阅读(55) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~