1.为什么java使用接口?
有时候必须从几个类当中派生出一个子类,继承他们所有的属性和方法,但是java不支持多重继承于是就有了接口。接口可以降低耦合度,并且提高程序的可扩展性。
2.接口的特征
1.接口用interface实现
2.接口中所有的成员变量都是由public static final修饰的
3.接口中的所有方法默认都是public abstract修饰的
4.接口没有构造方法,构造方法用于创建对象(接口没办法new对象),但是可以使用多态
5.实现接口的类中,必须实现接口中的所有方法,如果不实现接口中所有的方法,那么该类是抽象类
6.接口和接口之间可以互相继承
7.与继承关系类似,接口与实现类之间存在多态性
3.接口和抽象类的异同
1.接口的方法默认是 public,所有方法都是抽象方法,在接口中不能有实现(Java 8 开始接口方法可以有默认实现),抽象类可以有非抽象的方法
2.接口中的实例变量默认是 final 类型的,而抽象类中则不一定
3.一个类可以实现多个接口,但最多只能继承一个抽象类
4.一个类实现接口的话要实现接口的所有方法,而抽象类不一定
5.接口不能用 new 实例化,但可以声明,但是必须引用一个实现该接口的对象 从设计层面来说,
抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范