目录
前言
在Java中,类与类之间是单根继承的管理,也就是说一个类只能继承另一个类(一个类只能有一个直接父类)。那么一个类多继承该如何实现呢?这就需要使用接口来实现一个类的多继承。
接口语法规则
public interface 接口名{
public abstract 返回值类型 方法名();
其他方法
}
接口的特点
- 接口不可以被实例化
- 实现类必须实现接口的所有方法
- 实现类可以实现多个接口,使用关键字implements,多个接口使用逗号隔开
- 接口中的变量都是静态常量(public static final)
接口使用
- 接口中的成员变量 默认都是public static final的静态常量,必须显示初始化
- 接口中的方法默认都是public abstract的抽象方法
- 接口没有构造方法,不能被实例化
- 一个接口不能实现另一个接口,但可以继承多个其它接口
- 一个类必须实现接口的抽象方法,除非这个类也是抽象类
抽象方法VS接口
相同点
- 代表系统的抽象层
- 都不能被实例化
- 都能包含抽象方法,用于描述系统提供的服务,不必提供具体实现
不同点
- 在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法
- 抽象类便于服用,接口便于代码维护
- 一个类只能继承一个直接的父类,但可以实现多个接口
使用原则
- 接口做系统与外界交互的窗口,接口提供服务
- 接口本身一旦指定,就不允许随意修改
- 抽象类可以完成部分佛南功能实现,还有部分功能可作为系统的扩展点
总结
- Java中的接口属性全部都是全局静态常量;方法都是全局抽象方法;无构造方法
- 一个类可以实现多个接口,非抽象类实现接口时必须实现接口中的全部方法
- 抽象类利于代码复用,接口利于带么维护