接口的概念
有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。
接口(interface)是抽象方法和常量值定义的集合。
从本质上讲,接口是一种特殊的抽象类, 这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。例如:
public interface Runner{
int id =1;
public void start();
public void run();
public void stop();
}
案例:蝙蝠会飞,还会用牙齿咬。
首先定义一个飞行的接口:
package cn.com.Classwork;
public interface Flyable{
public final int wingsNumber = 2;
public abstract void fly();
}
接着定义一个咬的接口:
package cn.com.Classwork;
public interface Bitable{
public int teethNumber = 0;
public abstract void bite();
}
最后定义蝙蝠类去实现这两个接口:
package cn.com.ClassWork;
public class Bat implements Flyable,Bitable{
接口的特点
-
用interface来定义。
-
接口中的所有成员变量都默认是由public static final修饰的。
-
接口中的所有方法都默认是由public abstract修饰的。
-
接口没有构造方法。构造方法用于创建对象。
-
实现接口的类中必须提供接口中所有方法的具体实现内容。
-
多个无关的类可以实现同一个接口。
-
一个类可以实现多个无管道接口。
-
与继承关系类似,接口与实现类之间存在多态性。
-
接口也可以继承另一个接口,使用extends关键字。