一、什么是接口?
接口是java中的一种类型【引用数据类型】
它包括方法与常量
接口无法被实例化,但是可以被实现
它定义的格式如下:
[public] interface 接口名{
//方法 注意:接口中的抽象方法默认会自动加上public abstract修饰程序员无需自己手写!!
//常量 接口中常量必须要给初始值,常量命名规范建议字母全部大写,多个单词用下划线连接。
}
它的实现格式如下:
[修饰符] class 类名 implements 接口名1,接口名2,...{//接口可以同时实现多个接口
//实现所有的抽象方法
}
二、为什么要使用接口?
关于这点有多方面的原因,我总结了几条原因如下:
1)首先接口是一种规范,它定义了的方法它的实现类就必须实现该方法,那么所有实现它的类就都会有对应的同名方法,这样就相当于规范实现类了方法名,调用就方便了。
举个例子:
手机类 Phone
电脑类 Computer
它们都有充电方法,如果不实现接口,那么它们的充电方法名可以有很多种,例如:chongdian(),
charge(),cd()....。但是如果所有需要充电的类都实现了充电接口,那么不管有多少类它们实现的充电方法都会有充电接口对应的充电方法。
对比现实,排插的三孔接口就相当于java中的接口,而不同品牌的排插的内部构造就相当于它们各自的实现类。
2)便于代码的维护扩展。
举个栗子:你定义了一个类,有很多处引用了这个类,但是其中一部分的需求变更,由于还有一部分地方仍然使用到了这个类,你不能修改它,你就只能重新设计一个类再调用这个新的类,但是如果你使用了接口,就只需要将接口的实现类调换就可以了。
举个现实中拧螺丝的例子:
比如说你一开始只要拧十字型的螺丝,所以只有一个十字型的螺丝刀,但是某天你要拧米型的螺丝,这时你就只能买把新的米型的螺丝刀(写一个新类,然后调用)。但是过你一开始使用的是能扩展的螺丝刀的话,只需要换螺丝刀头就可以了(换一个实现类)。
三、继承父类与实现接口的差别
1)一个类只能继承一个父类。
2)一个类可以实现多个接口。
3)一个类必须实现接口中的所有方法,除非它是一个抽象类。