接口的关键字
使用关键字interface定义接口
一般使用I开头表示接口的命名
子类使用implements实现接口,子类若是普通类,必须覆写接口中所有的抽象方法(一般磊说,子类使用Imp结尾,表示是接口的实现子类,若子类一眼看去就知道是某个接口的子类,可以不加Impl结尾l)
接口的子类之间没有太多的联系,接口只是多个不同类之间相同的规范,表示一种水平方向向上的混合规范
接口没有继承的 is a 原则,相较于抽象类,使用更加灵活
- 接口是更加纯粹的抽象类,只有抽象方法和全局变量,没有构造方法,没有普通方法,因此接口仍然无法直接实例化对象,只能通过具体的子类向上转型被接口引用接收
- 接口的子类允许多实现,一个类可以使用implements实现多个父接口(避免抽象类的单继承局限)
接口间的继承
在Java中,类和类之间是单继承的,一个类可以实现多个接口,接口与接口之间可以多继承。即:用接口可以达到多继承的目的。接口可以继承一个接口, 达到复用的效果. 使用 extends 关键字.
-
因为接口中只有全局变量和抽象方法,因此,在接口中一下关键字可以省略不写,阿里编码规约明确表示,接口中只保留核心关键字,可以省略的坚决不写!!(public abstract static final(常量))但是在类中千万不能省略,抽象类也不能省略
-
子类若同时继承一个抽象类,实现多个接口,先使用extends继承一个类,而后使用implements实现多个接口
public class Dog extends Animal impLements IRun , ISwim{
public Dog( String name){
super(name);
}
public void run(){
system.out.println("小狗" +this.name + "正在快速的奔跑~");
}
public void swim() {
system.out.print1n("小狗" + this.name + "正在水里狗刨~");
}
- 接口的多继承。接口和接口之间可以使用extengs继承多个父接口,但是接口不能使用extends继承类!因为类中有普通方法,构造方法等内容接口中都没有
```java
interface A{
voidtestA();
}
interface B{
void tsetB();
}
interface C extend A,b,{
void testC();