接口的定义
在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口与抽象类最大的区别就是一个类可以实现多个接口但是只能继承一个类
让我们先定义一个行为的接口:
这个行为的接口有两个方法:
一个是吃东西
一个是睡觉
再让我们定义一个实现类来实现行为接口:
可能有人看到这就有疑问,我直接写类不行吗?为什么要多定义一个行为接口?
例如:
貌似更简洁、方便?
再让我们定义一个猫类来实现这个行为接口
再让我们定义一个狗类实现这个行为接口
可能有人能看出点东西了,但我单独定义好像也没问题呀?
例如:
有的同学可能开始讲接口的定义了来表示自己懂这个问题
接口是一种规范...
接口定义了功能让其他类实现...
接口让其他实现来实现接口中的方法...
先放下这些,让我们继续!
定义好了猫猫和狗狗,该让它们干活了
实现了行为的接口:
未实现行为接口:
让我们把第一个再简化一下
我们定义了一个liveAbleGo
来接收实现LiveAble的实现类对象
让我们来推导一下吧!
只要是这个接口的实现类都能接收--->
只要是这个接口的实现类都有这两个方法--->
只要是这个接口的实现类都能执行里面的两个方法
可能两个实现类你感知不出来,但是实现类多起来即使简单的两个行为也会变得很复杂.
如果你没有实现这个接口,那请问你要怎么做?
可能有同学会说那我继承呗...
强调一下:
继承加强了类之间的耦合性并且类只能继承一个,但是可以实现多个接口
兜兜转转,好像接口才是最优解