本章内容
- 接口
- 接口的定义
- 接口的使用步骤
- 接口的基本实现
- 接口中的方法使用
- 方法重名及解决方案
- 抽象类与接口的区别
接口
概述: 接口,是java语言中的一种引用类型,是方法的集合,如果说类的内部封装了成员变量和构造方法,成员方法,那么接口的内部主要就是封装了方法。
接口的定义: 接口的定义和类的定义很相似,但是不再使用class关键字进行声明,虽然它也会被编译成class文件,但一定要明确他并不是类,而是另外一种引用类型。接口就是多个类的公共规范,接口也是一种引用数据类型。
接口中的内容
如果是JDK1.7,那么接口中包含的内容包含常量和抽象方法
如果是JDK1.8,还可以包含默认方法和静态方法
如果是JDK1.9,还可以包含私有方法
接口的使用步骤
- 接口不能直接使用,必须要有一个实现类来实现该接口,通过implements关键字,一个实现接口的类可以被看做是接口的一个子类,需要重写接口中的所有抽象方法,创建该子类对象,就可以调用方法了。
接口的的格式
public interface 接口名称{
//抽象方法 (主要)(JDK1.7)
//常量 (JDK1.7)
//默认方法 (JDK1.8)
//静态方法 (JDK1.8)
//私有方法(JDK1.9)
}
含有抽象方法
抽象方法:使用abstract关键字修饰,没有方法体内容,该方法主要是提供给子类使用的
public interface InterfaceName{
public abstract void method();
}
含有默认方法和静态方法
默认方法: 使用default关键字修饰的方法,不可省略,供子类调用或者子类重写。
静态方法: 使用static关键字修饰,供接口直接调用。
含有私有方法和私有静态方法
私有方法: 使用private关键字修饰,供接口中的默认方法或者是静态方法调用。(JDK1.9)
public interface InterfaceName{
private void method(){
//方法体内容
}
}
2.接口的实现类必须重写(实现)接口当中的所有抽象方法。
实现:去掉abstract关键字,“;”换成“{ }”,即添加方法体内容
3.创建实现类的对象,进行使用
注意事项
如果实现类中并没有实现接口中的所有抽象方法,那么这个实现类自己必须是一个抽象类。
基本实现
实现的概述 : 类与接口的关系是实现关系,即类实现接口,该类称为接口的实现类也可以称为接口的子类。实现的动作类似于继承,格式相仿,只是关键字不同,实现使用implements关键字。
1.非抽象类实现接口,必须重写接口中的所有抽象方法
2.实现类继承了接口当中的默认方法,既可以直接调用,也可以重写。
public class 实现类 implements 接口名称{
//重写接口当中的所有抽象方法
//重写接口当中的默认方法(可选)
}
抽象方法的使用:必须全部实现
//定义一个接口
public interface Biological{
//定义一个吃东西的功能
public abstract void eat();
//休息
public abstract void sleep();
}
//定义一个实现类
public class Animal implements Biological{
@Override
public void eat(){
System.out.println("吃东西");
}
@Override
public void sleep(){
System.out.println("睡觉");
}