这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【接口与实体类 】
接口与实体类
-深圳-Java-詹威斯-
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
1.背景介绍
为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?
Interface和Class都是java文件,Interface实现类和直接写成实体类其实都可以完成我们要的功能,那为什么不直接写成实现类?为什么更倾向于用接口?
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为
2.知识剖析
实体类是什么?
实体类比较常见,也比较好理解,就是一个普通的Java class:
有成员变量
有构造器、方法,或main函数
可以直接new一个对象来使用
可以extends
接口Interface是什么?
interface是一个需要实现的class,是Java里很重要的一个概念
构造方法和其他方法一般没有自己的实现(可以有default实现,在这暂不考虑)
一般没有自己的成员变量,如果有,默认都是public,static,final类型的,且必须初始化,也即接口中的成员变量为常量
Java接口必须通过类来实现它的抽象方法,通过implements来实现,可以有不止一个实现类
同时,一个类也可以同时实现多个接口,实现多继承
接口中没有构造方法,不能被实例化。除了构造方法也同时有其他方法,但是只确定了返回值的类型,参数的个数和类型,默认都是public,abstract类型,没有方法体,不能被实例化
当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
可以extends
3.常见问题
为什么更倾向于用interface?
同学们的疑惑:我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现方法,那我不如直接就在这个类中写实现方法岂不是更便捷,还省去了定义接口
4.解决方案
对现实问题进行抽象:OOP的一个思想,就是不需要对面客户Client知道具体的实现,而只通过文档了解入参个数、类型、返回值类型以及异常,就可以直接拿去使用。至于具体的实现,是可以不用理会的。实现有开发者去关心。
规范:如果未来要更改实现的具体内容,只要去改实现类就可以了,接口是不用动的。这样就极大地降低了耦合度。
多态:一个接口可以有多个实现,一个类可以实现多个接口。
5.编码实战
6.扩展思考
抽象类和实体类
抽象类和接口
抽象类时对现实问题对象性质的抽象
接口更多时对对象方法的抽象
7.参考文献
CSDN、百度百科、师兄们提供的资料
8.更多讨论
什么时候用接口?什么时候用实体类?
写接口要注意什么?
写实现类要注意什么?
谢谢大家阅读,如有问题,恳请批评指正
by 深圳分院 - 詹威斯
更多内容,可以加入IT交流群565734203与大家一起讨论交流
这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地