面试刷题13:接口和抽象类有啥区别?
掌握面向对象的原则可以提高开发,沟通的效率和质量。
我是李福春,我在准备面试,今天的问题是:
接口和抽象类有什么区别?
接口和抽象类是面向对象语言的重要设计元素。
区别如下:
下面扩展一下,面试官可能延伸的问题。
面向对象的特性
封装: 一切皆对象,对象具备成员和方法,封装了内部细节,使得具备边界,提高程序的安全性和简洁性;
继承:代码复用的手段,是一种强耦合关系,但是只能单继承,应该避免过度使用继承
多态:通过抽象类和接口都可以实现多态,在不同的实现类或者子类中,行文定义有不同的实现形态。
重写和重载
重写是方法签名一致
重载是方法名称一致,返回值一致,而参数列表不一致。
SOLID设计模式原则
在做软件研发的过程中,如何写出高质量的代码,借鉴设计模式的几个原则作为检查依据很有必要。
S: Single 单一职责 ,类中做的事情单一
O: Open close 开闭原则 ,对扩展开放,对修改关闭
L: lis 里斯替换 , 接口实现类或者子类可以上转型为 接口和抽象类
I: Interface 接口隔离 接口要按照使用场景分开,避免耦合
D: Dependency 依赖倒转 , 应该依赖接口或者抽象类编程,而不是具体的实现,可以提高程序的扩展性
小结
本篇回答了接口和抽象类的区别,实际上这是面向对象设计的重要元素。理解区别,在实际编程工作中使用,就是面向对象原则的灵活应用。
然后回顾了这两货后面的基础知识,面对对象的原则(3大原则),设计模式的基本原则 SOLID 。
汇总一下如下图:
原创不易,转载请注明出处。
no pays,no gains!
标签:
Java技术 技术管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架