目录
接口
简单来说,接口用来提供扩展功能。
接口特点
1.接口用interface关键字定义
public interface 接口名{}
2.类实现接口用implements
class 类名 implements 接口名{}
3.接口没有构造方法,故不能实例化对象。
可以用多态的方式来进行实例化
4.接口的子类必须重写接口的所有抽象方法(除了抽象类)
接口的成员特点
1.成员变量
必须为静态常量
默认给出 public static final 可以省略
2.成员方法
默认给出 public abstract 可以省略
3.没有构造方法
类与类的关系
继承关系,只能单继承,可以多层继承
类与接口的关系
实现关系,可以单实现,也可以多实现
也可以在继承一个类的同时实现多个接口
class 类名 implements 接口名1,接口名2{}
class 子类 extends 父类 implements 接口名1,接口名2,接口名3{}
接口与接口的关系
继承关系,可以单继承,也可以多继承
抽象类与接口的区别
1.成员区别
成员变量: 抽象类的成员变量可以是变量也可以是常量,接口的成员变量只可以是常量
构造方法:抽象类有构造方法,接口没有构造方法。
成员方法:抽象类的成员方法可以抽象,也可以非抽象,接口的成员方法只可以抽象
2.关系区别
类与类 继承,单继承
类与接口 实现,单实现,多实现
接口与接口 继承,单继承,多继承
抽象类与接口的使用场景
抽象类:定义共性功能
接口:定于扩展功能
补充说明
在JDK1.8后,接口中也可以定义缺省方法和静态方法
缺省方法,可以继承下来,也可以重写
静态方法,只能用接口名调用