博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试刷题13:接口和抽象类有啥区别?
阅读量:4210 次
发布时间:2019-05-26

本文共 688 字,大约阅读时间需要 2 分钟。

image.png

   掌握面向对象的原则可以提高开发,沟通的效率和质量。
   我是李福春,我在准备面试,今天的问题是:
   接口和抽象类有什么区别?
接口和抽象类是面向对象语言的重要设计元素。
区别如下:

file

下面扩展一下,面试官可能延伸的问题。

面向对象的特性

封装: 一切皆对象,对象具备成员和方法,封装了内部细节,使得具备边界,提高程序的安全性和简洁性;
继承:代码复用的手段,是一种强耦合关系,但是只能单继承,应该避免过度使用继承
多态:通过抽象类和接口都可以实现多态,在不同的实现类或者子类中,行文定义有不同的实现形态。

重写和重载

重写是方法签名一致
重载是方法名称一致,返回值一致,而参数列表不一致。

SOLID设计模式原则

在做软件研发的过程中,如何写出高质量的代码,借鉴设计模式的几个原则作为检查依据很有必要。
S: Single 单一职责  ,类中做的事情单一
O: Open close 开闭原则 ,对扩展开放,对修改关闭
L: lis 里斯替换 , 接口实现类或者子类可以上转型为  接口和抽象类
I: Interface 接口隔离  接口要按照使用场景分开,避免耦合
D: Dependency  依赖倒转 , 应该依赖接口或者抽象类编程,而不是具体的实现,可以提高程序的扩展性

小结

本篇回答了接口和抽象类的区别,实际上这是面向对象设计的重要元素。理解区别,在实际编程工作中使用,就是面向对象原则的灵活应用。
然后回顾了这两货后面的基础知识,面对对象的原则(3大原则),设计模式的基本原则 SOLID 。
汇总一下如下图:

image.png

原创不易,转载请注明出处,让我们互通有无,共同进步,欢迎多沟通交流

你可能感兴趣的文章
OpenGL与DirectX 比较
查看>>
应用文件映射进行进程间通讯
查看>>
CentOS5.x 系统安装-图形模式
查看>>
CentOS硬盘安装方法
查看>>
Linux学习记录--关机相关操作
查看>>
Linux学习记录--文件权限
查看>>
Linux学习记录--目录配置FHS
查看>>
Linux学习记录--文件与目录管理
查看>>
Linux学习记录--文件内容查阅
查看>>
Linux学习记录--文件|目录的默认权限与隐藏权限
查看>>
Linux学习记录--命令与文件的查询
查看>>
Linux命令缩写
查看>>
Linux学习记录--文件系统简介
查看>>
Linux学习记录--文件系统简单操作
查看>>
Linux学习记录--磁盘分区,格式化与检验
查看>>
Linux学习记录--磁盘挂载与卸载
查看>>
Linux学习记录--内存交换空间的构建
查看>>
Linux学习记录--文件压缩
查看>>
Linux学习记录--文件备份|还原
查看>>
ASCII、ANSI、Unicode及UTF-8编码
查看>>