1.1 接口的定义
如果一个类中,只是由抽象方法和全局常量所组成,在这种情况下,我们不会将其定义为抽象类,因为抽象类会有构造方法,而只会将其定义为接口。
定义一个接口,我们用interface关键字。
interface A {
public static final String MSG = "Hello world";
public abstract void print() ;
}
接口必须要有子类,子类须使用implements关键字实现多个接口;
接口的子类(如果不是抽象类)必须要覆写接口中的全部抽象方法;
接口的对象可以利用子类对象的向上转型进行实例化操作。
一个接口可以使用extends 继承多个接口。
1.2 接口与抽象类的区别
1. 声明的关键字不同。 抽象类使用的 abstract class; 接口使用的是interface
2. 组成不同。 抽象类里面有构造方法、普通方法、抽象方法、static 方法、常量、变量; 接口里面只有抽象方法和全局常量
3. 子类使用不同。 class 子类 extends 抽象类; class 子类 implements 接口A,接口B.....
4. 关系。 抽象类可以实现多个接口;但是接口不能继承抽象类,却可以继承多个父接口
5. 权限。 抽象类可以使用各种权限; 接口只能使用 public权限。
6. 限制。 一个子类只能继承一个抽象类;一个接口可以继承多个父接口