什么是接口
接口,英文称作 interface,在软件工程中,接口泛指供别人调用的方法或者函数。从这里,我们可以体会到 Java 语言设计者的初衷,它是对行为的抽象。通俗来讲,接口就是一种规范,当一个类中所有的方法都是抽象方法,那么这个类的唯一价值就是在声明规则,这时就可以把该类定义为一个接口.
接口的定义格式
//定义格式
public interface Inter {
public abstract void method1();
public abstract void method2();
}
//接口的实现格式
//接口的实现类要么重写接口的所有抽象方法,要么该类是个抽象类,这点与抽象类的子类很相似.
public class InterImpl implements Inter {
@Override
public void method1() {
System.out.println("重写后的method1方法");
}
@Override
public void method2() {
System.out.println("重写后的method2方法");
}
}
接口中成员的特点
-
成员变量:
接口中的成员变量默认是常量,默认被public static final修饰,这三个修饰符顺序可以不同
-
成员方法:
接口中的方法都是抽象方法,默认被public abstract修饰
-
构造方法
没有构造方法,因为接口中的成员变量都是常量,不会存在子类对象实例化时父类成员变量初始化问题,另外接口实现类与接口之间也不是继承关系.不存在调用接口的构造的情况.
接口和类的关系
-
类和类的关系
类和类只能继承,并且是单继承,但是可以多层继承
-
类和接口的关系
类和接口属于实现关系,类实现接口,可以单实现,也可以同时实现多个接口
-
接口和接口的关系
接口和接口之间属于继承关系,且可以多继承
注意:
- 如果一个类的父类和所实现的接口中有相同的方法,默认调用的是父类的方法
- 如果两个接口中有同名的默认方法,其实现类或子接口都必须重写该方法