18_接口以及基本实现
接口本质是一个类
其包括class类型String类型
接口:是Java语言中的一种引用类型,就是方法的集合。
如果说类的内部封装了成员变量、成员方法和构造方法,那么接口的内部主要封装的是方法
包括:抽象方法(JDK1.7及以前的,大部分都是抽象方法)、默认方法和静态方法(JDK1.8),私有方法(JDK1.9)
接口的定义:
使用interface关键字,编译生成class类文件,但是明确它不是由class声明,
而是由interface关键字修饰的这样的一种类,属于另外一种引用数据类型。
备注:引用数据类型:数组、类(String字符串)、接口
接口的使用,它不能创建对象。但是可以被实现(implements,类似于被继承)
一个实现接口的类(可以看做是子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用该方法,否则它必须就是抽象类
定义格式:
public interface InterfaceName { // JDK1.8版本 我是用的是1.8版本都可以用 // 抽象方法 // 默认方法 // 静态方法 // 私有方法 }
抽象方法:使用abstract关键字修饰,在接口中可以省略不写,没有方法体。供子类使用的。
默认方法和静态方法:
默认方法:使用default修饰,不可省略,供子类调用或者子类重写。
静态方法:使用static修饰,供接口直接调用。
含有私有方法和私有静态方法:
私有方法:使用private修饰,供接口中的默认方法或者静态方法调用。
基本实现
类与接口的关系称为实现关系,该类就是接口的实现类,也可以称为该接口的子类,实现的动作类似于继承。格式相仿,关键字不同,实现使用的是implements关键字
非抽象类实现接口:
1.必须重写接口中的所有的抽象方法
2.继承了接口的默认方法,既可以直接调用,也可以重写。
实现格式:
public class ClassName implements InterfaceName { // 重写接口中的抽象方法【必须】 // 重写接口中默认方法【可选】 }