Java接口
Java接口
概述
接口中全是抽象方法,只描述应该具备的方法,没有具体的实现。
定义
使用interface定义接口
格式:
public interface 接口名{
抽象方法;
....
}
类实现接口
使用关键字implements实现接口
class 类 implements 接口{
重写接口中的方法
}
特点
- 在类实现接口后,该类会将接口的抽象方法继承过来,此时类要重写抽象方法,完成逻辑
- 接口中无法定义普通的成员变量
- 接口中定义变量,必须要用固定的修饰符修饰,public static final
- 接口中定义方法,方法也要有固定修饰符:public abstract,(省略后,在生成class文件时还是会自动加上)
- 可以继承多个接口
接口的多实现
Java之所以不支持多继承,是因为当多个父类有相同功能时,子类调用会产生不确定性,因为父类中功能有主体,当调用时不确定运行那个主体内容,而因为接口中没有方法体,因此不会产生这个问题,所以接口可以多实现。
interface Fu1 { void show1(); } interface Fu2 { void show2(); } class Zi implements Fu1,Fu2 //采用多实现,同时实现多个接口(Java中不支持多继承) { public void show1(){} public void show2(){} } interface Zi extends Fu1,Fu2 //多继承 { void show3(); }
类继承类同时实现接口
class FU //定义类 { public void show(){} } interface Inter //定义接口 { public abstract void show1(); } class Zi extends Fu implements Inter //继承类同时实现接口 { public void show1(){} }
接口和抽象的区别
- 抽象类为部分方法提供实现,避免子类重复实现这些方法;接口只能包含抽象方法
- 一个类只能继承一个直接父类,但可以实现多个接口
- 接口的实现类必须重写父类全部的抽象方法
- 抽象类中的抽象方法不是必须全部重写
- 抽象类可以没有抽象方法,这样的类不能实例化