接口 多态
I 接口
一、接口概述
1、定义:一个类中所有方法均为抽象方法时, 将该类定义为接口
2、辨析接口与抽象类:抽象类不一定有抽象方法,接口所有方法均抽象方法(也有编写非抽象方法的途径)
3、类型:接口是引用数据类型,比抽象类更抽象
4、接口存在意义:(1)规则的定义(2)程序的扩展性 (类比理解USB接口)
5、格式和特点:
(1)通过interface关键字定义,格式:public interface 接口名{}
(2)接口不能实例化(不能创建对象)
(3)接口和类是实现关系,通过关键字implements实现,实现类格式:public class 类名 implements 接口名(){} 类名规则:接口名+impl
(4)实现类是接口的子类,它要么是抽象类,要么重写接口中所有抽象方法
二、接口构造方法以及成员
1、构造方法:接口没有构造方法
2、成员变量:只能是常量,默认修饰符:public static final
3、成员方法:只能是抽象方法,默认修饰符:public abstract(jdk8和jdk9中做出升级)
三、JDK8版本之后接口成员特点
1、允许在接口中定义非抽象方法,用default修饰,这些是默认方法(解决接口升级的问题)
2、接口中允许定义static静态方法
3、默认方法定义格式:public default 返回值类型 方法名(参数列表){}
note:
(1)默认方法不是抽象方法,不强制被重写,如需要重写去掉关键字default
(2)public可以省略,default不能省略
(3)如实现多个接口,多个接口中出现相同的方法声明,子类必须重写该方法
4、静态方法定义格式:public static 返回值类型 方法名(参数列表){}
note:
(1)静态方法只能通过接口名调用,不能用实现类名或者对象名调用