java中为什么会出现接口,接口的作用是什么,接口是什么?
什么是接口: 接口就是一种规则,规范。
比如:能供电的物体,只要是能供电的物体都是,不仅仅只是电线什么的。
接口的作用是什么?
在说接口之前不得不说一个词:“继承”,我们知道类通过继承可以让子类拥有更多的类型,但是大家都知道,java是单继承,如果想拥有很多类型就必须,向上再继承,这样就会造成麻烦。因为子类,父类必须去继承,也就意味着要修改父类,如果父类本身不应该或者不能存在某些类型,那么这就出现问题了,也就是说,你不行你让你爸爸去做,你爸爸也不能做到的事情也有吧,那咋办呢,想办法呗,找能办成的人去办呗,找谁呢-------------找接口,找接口,找接口。
**最重要的一句话来了,也就是接口的作用:**因为Java是单继承所以想让一个类具备多种类型是十分不方便的,接口就是来解决,处理这种情况的。Java中不允许一个类有多个父类,但是允许一个类实现多个接口。>
其实接口就是在继承处理问题遇到瓶颈时候的柳暗花明又一村。
在接口中需要理解的问题:
接口是一种类型,而当一个类实现一个接口时,这个类就同时具有了接口的类型。当一个类实现接口中的所有抽象方法的时候,java就认为这个类实现了这个接口。
在java中就是按照类型来赋值的,也就是说类可以扮演被他继承的,实现的所有父类,接口的类型。
接口只是负责描绘出一个规则(即定义抽象方法),具体如何去实现接口中的定义方法,要交给某个类来完成,在一个类中实现接口,需要两步走:
- 首先,在类声明中要使用implements关键字,以表示类需要实现哪些接口,多个接口用逗号隔开,
- 第二步,在类体中需要提供接口中规定的方法,代码如下:
//这属于一个案列中的部分代码,主要是看接口部分即可,不必纠结其他的东西
package com.javaeasy.transport;
import com.javaeasy.logcarinterface.TransportStatusForLog;
import com.javaeasy.logcarinterface.RecordeAble; // 引入使用到的接口
public class Bike implements RecordeAble
{
private int speed; // 表示自行车的速度
private String name; // 表示自行车的名字
// 实现接口RecordeAble中规定的方法
public TransportStatusForLog getTransportStatus() {
// 创建一个TransportStatusForLog的引用status,并让它指向一个TransportStatusForLog对象
TransportStatusForLog status = new TransportStatusForLog(name, speed);
return status;
// 返回status引用
}
定义一个接口语法:
package com.javaeasy.logcarinterface; // 接口所在的包
public abstract interface RecordeAble {
// RecordeAble接口
public abstract TransportStatusForLog getTransportStatus();
// 抽象方法
}