关于接口

什么是接口呢?
java中,接口不是类,而是对类的一组需求描述,就好像一扇门,和一个锁子,
它们不可能是继承关系,这个时候我们就可以用继承来描述,一扇门,实现了锁子的功能

口再描述的时候就不能用继承来描述了,而是实现(implements)
接口和接口之间使用extends,接口和类之间使用implements

public interface A{}                //接口A
public interface B extends A{}      //接口A继承接口B
public interface C{}                //接口C
public class D implements A, B, C{  //类D 实现了接口A,接口B,接口C功能
}

接口的特性(重要)

1.接口之间必须是extends,而且只能单一继承,即一个接口继承一个接口
接口和类之间必须是implements,但是一个类可以实现多个接口
2.接口不是类,不能使用new运算符实例化一个接口,然而尽管不能构造接口的对象
却能声明接口的变量。 接口变量必须引用实现接口的类对象。
3.接口可以被看作是受限制的,里面只能有常量和方法。所谓的实现和继承接口,就是将接口看作一个父类。继承其中的全部内容
4.接口中的静态方法直接用接口名直接调用,一般方法可以用default(默认)修饰符。

接口的作用

一般用来做向上转型 它和抽象类一样 不能用来new。
而且,在继承中,一个子类只能有一个父类来拓展工程,但是用接口可以实现一个类有多个接口
接口越多 拓展的功能也就越多。
有个问题
如果现在一个接口中将一个方法定义为默认方法,然后又在超类或另一个接口
中定义了同样的方法,会怎样?
1)超类优先。如果超类提供了一个具体方法,同名而且有相同参数类型的默认方法会被忽略。
2)接口冲突。如果一个超接口提供了一个默认方法,另一个接口也提供了一个同名而且参数类型也相同的方法,必须覆盖这个方法来解决冲突。