接口与实体类

这里是修真院后端小课堂,每篇分享文从

【接口与实体类 】

接口与实体类

-深圳-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 深圳分院 - 詹威斯

你可能感兴趣的:(JAVA)