接口
接口
生活中的接口
如笔记本上的usb接口可以连接键盘和鼠标
生活中的接口特点:
接口是可以扩展功能的
接口是一种规范、是一种约束
接口是灵活的
java中的接口
接口是抽象类和常量的集合,jdk1.8后接口中可以包含静态方法和默认方法
语法格式:
修饰符 interface 接口名{}
接口里的格式:
接口中可以包含三类方法:抽象方法、默认方法、静态方法。
静态方法可以通过“接口名.方法名”的形式来调用。
抽象方法和默认方法只能通过接口实现类的实例对象来调用
接口的注意事项:
接口不能有构造方法
接口不能直接创建对象使用的
案例:
public static void main(String[] args) {
DemoImp Imp = new DemoImp();
Imp.eat();
Imp.pyte();
System.out.println(InterfaceDemo.selID());
}
}
interface InterfaceDemo{
//常量
static final int ID=1;
//抽象方法
public abstract void eat();
//默认方法
public default void pyte(){
System.out.println("玩耍");
}
//静态方法
public static int selID(){
return ID;
}
}
class DemoImp implements InterfaceDemo {
@Override
public void eat() {
System.out.println("吃饭");
}
@Override
public void pyte() {
System.out.println("玩耍+1");
}
}
应用场景:
当我们重新编写一些简单的功能或者一些标准的时候使用接口
某个问题不需要继承,只需要很多子类给出重复的abstract方法的具体实现细节,就用接口
接口是一种规范 一种标准 同时接口也是灵活的
关系:
接口和接口之间的关系才是继承
而接口和类之间的关系是实现 类实现这个接口
抽象类和接口的对比
比较点 | 抽象类 | 接口 |
定义 | 用abstract关键字来修饰的类 | interface关键字来修饰的接口 |
组成 | 抽象方法、普通方法、构造方法、成员变量、常量 | 静态常量、抽象方法、默认方法、静态方法 |
使用 |
子类继承(exends) | 实现类实现(implements) |
关系 | 抽象类可以实现接口 | 接口时不能继承抽象类的 |
对象 | 都是通过对象的多态类实现 | 都是通过对象的多态类实现 |
局限 | 不能多继承、不能实例化 | 可以多继承、不能实例化 |
选择 | 建议选择接口 避免单继承 | 建议选择接口 避免单继承 |
实际 | 模板 | 标准 |