接口:一种规则,是对行为的抽象
如何定义一个接口:
用关键字 : interface 来定义
public interface 接口名 {}
接口不能实例化
接口和类是实现关系,通过 implements 关键字表示
例如; public class 类名 implements 接口名{} // 一个类实现一个接口
接口的子类(实现类)
1:要么重写接口中的所有抽象方法
2:要么是抽象类
注意: 1: 接口和类的实现关系 ,可以单实现,也可以多实现
例: public class 类名 implements 接口名1 ,接口名2 {}
2: 实现类还可以在继承一个类的同时实现多个接口
例: public class 类名 entends 父类 implements 接口名1,接口名2{}
接口中成员的特点:
成员变量:只能是常量
默认修饰符:public static final
构造方法:没有
成员方法: 只能是抽象方法
默认修饰符: public abstract
JDK7以前:接口中只能定义抽象方法
// JDK8的新特性: 接口中可以定义有方法体的方法
// JDK9的新特性:接口中可以定义私有方法
接口和类之间的关系;
类和类的关系:
继承关系 ,只能但继承不能多继承 ,但是可以多层继承
类和接口的关系:
实现关系,可以单实现,也可以多实现 , 还可以在继承一个类的同时实现多个接口
实现多个接口(要把所有的抽象方法全部重写)
在实现多个接口时:
重写方法遇到方法重名的情况: 只需要重写一次即可
例如: 接口1 接口2 中均含有方法 1 2 3
则在实现过程中,重写 一次1 2 3 即表示同时重写了 接口1 和 接口2 中的同名方法
接口和接口之间的关系:
继承关系,可以单继承也可以多继承
注意: 如果实现类,实现的是最下层的子接口,则需要重写(该体系)所有的抽象方法
抽象类和接口的区别:
1.抽象类当中,可以包含和普通类一样的成员变量和成员方法,但是接口当中的成员变量只能是public static final 的 , 方法只能是public abstract
2.一个类只能继承一个抽象类,但是能够以同时实现多个接口,所以解决了java当中不能进行多继承的特性
接口间的继承:
接口与接口之间可以多继承。即:用接口可以达到多继承的目的。
接口可以继承一个接口, 达到复用的效果. 使用 extends 关键字.