接口
什么是接口
- 硬件接口:两个设备之间的连接方式,包含数据传输协议
- 软件接口:程序代码,包含一种规范
统一接口以后的意义:根据规范·设计产品,可以做到适配性
Java接口
定义:使用interface关键字
//把class 替换成 interface
/***
* 接口的定义
*/
public interface InterfaceDemo {
void usb()
}
注意:
-
接口里面只能定义抽象方法,不能定义实例方法
-
抽象方法默认提供了public abstract 修饰符
-
接口不能实例化 没有构造方法(和抽象类一样)
怎么去实现接口
用 implments 关键字修饰
//接口单实现
public class InterfaceClass implements InterfaceDemo{
@Override
public void usb() {
}
@Override
public void usb1() {
}
@Override
public void usb(String name) {
}
}
//接口多实现(多个接口用逗号隔开)
public class ImplementsDemo implements InterfaceDemo1,InterfaceDemo2{
@Override
public void usb() {
}
@Override
public void typec() {
}
}
**注意:**多实现分别把每个接口的抽象方法都实现了
接口的多继承
注意:
- 类和接口之间只能使用implement实现关键字,不能使用extends继承关键字
- 接口和接口之间可以使用extends继承关键字
- 当接口继承接口时,实现类只需要去实现最终接口就行
//接口和类
public class ImplementsDemo implements InterfaceDemo1,InterfaceDemo2{
@Override
public void usb() {
}
@Override
public void typec() {
}
}
//接口继承0 接口
public interface InterfaceDemo3 extends InterfaceDemo1,InterfaceDemo2{
}
//当接口继承接口时,实现类只需要去实现最终接口就行
public class ImplementDemo1 implements InterfaceDemo3{
@Override
public void say() {
}
@Override
public void usb() {
}
@Override
public void typec() {
}
}
疑问
-
接口可以多继承,类可以多继承吗?
答:不可以,类与类之间只能单继承,不能多继承,但是可以无限制的继承
-
类继承类,类又可以实现接口
-
不管继承多少代,父亲的方法儿子永远能够使用
-
抽象类可以不用实现接口的抽象方法
接口和抽象的选择( 都可以使用 )
- 抽象类,接口都属于顶层
- 抽象类有抽象方法,实例方法
- 接口可以定义规范