接口的介绍
1.当一个类中所有的方法都是抽象方法的时候,就可以将其定义为接口.
2.接口也是一种引用数据类型,它比抽象类还要抽象.
定义接口的意义:
1.规则的定义.
2.程序的扩展.
接口的特点:
1.接口不能实例化(不能创建对象).
2.接口和类之间是实现关系,通过implements关键字表示.
3.接口可以单实现,也可以多实现接口.
4.接口的实现类要么重写接口中的所有抽象方法,要么该实现类是抽象类.
注意:在接口的实现子类中,重写的方法修饰符只能大于等于父类的修饰符
接口的定义格式:
//格式
public interface 接口名{
}
//示例
public interface Inter{
}
接口的实现:
//格式
public class 类名 implements 接口名1,接口名2{
}
//示例
public class Demo implements InterA,InterB{
}
接口中的成员
1.接口中的变量:
默认使用public static final修饰,也就是静态常量.
2.接口中的成员方法:
默认使用public abstract修饰的,是抽象方法,没有方法体.
3.接口中的构造方法:
没有构造方法,不存在构造方法就不能对变量进行初始化,所以及口中的变量都是常量.
注意:在实现类中的构造方法中实现的super();是object类的,所有的类都会继承object类.
接口中静态方法:
接口中允许定义static静态方法
定义格式:
//格式
public static 返回值类型 方法名(参数列表){
}
//范例
public static void show(){
}
接口中静态方法的调用:
是使用静态方法所在接口的名使用.调用的
注意:
1.静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
2.public可以省略,static不能省略
JDK1.8中接口中成员方法的定义:
允许在接口中定义非抽象方法,但是需要使用关键字default修饰,这些方法是默认方法.
作用:解决了接口升级的问题.
默认方法的定义格式:
//格式
public default 返回值类型 方法名(参数列表) {
}
//范例
public default void show(){
}
接口中默认方法的注意事项:
1.默认方法不是抽象方法,所以不能被重写,但是可以被重写,重写的时候去掉default关键字
2.public 可以省略,default不能省略
3.如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写