1. 接口
1.1 接口之间的关系
类和类之间是继承关系(单继承),类和接口之间是实现关系(多实现implements),接口和接口之间是继承关系,支持多继承,一个接口可以同时继承多个接口.
interface A extends B,C,D{} // 接口多继承
// 实现A接口,BCD接口内的方法都要重写
1.2 实现类还是抽象类
实现类实现接口,重写一部分抽象方法,实现类还是一个抽象类
public interface A {
public abstract void a1();
public abstract void a2();
}
public abstract class B implements A {
public void a1(){
}
// public abstract void a2();
}
1.3 接口规则案例
/**
* 笔记本电脑类
*/
public class Computer {
/**
* 笔记本电脑,通过USB接口,使用外接设备
* 方法定义,实现设备的使用
* 返回值类型 : 这个方法经过运算后的结果的数据类型
* 参数 : 其实方法的参数,是方法运算过程中的未知数据,才是参数
*
* 笔记本电脑,通过USB接口,使用外接设备 这个功能的未知数据,就是外接设备
* 核心 : 未知设备,都有共同特性 : 满足接口规则
*
* 问题 : 这个方法调用 : 传递他什么
* 参数是引用类,要传递对象,传递接口实现类对象
*/
public void useUSB(USB usb){
// USB usb = new Mouse();
//接口引用调用方法
usb.start();
usb.end();
}
}
/**
* 键盘类 : 满足接口标准
*/
public class KeyBoard implements USB{
@Override
public void start() {
System.out.println("键盘工作");
}
@Override
public void end() {
System.out.println("键盘停止工作");
}
/**
* 鼠标类 : 接入USB接口工作
* 满足接口的规则 : 程序中就是实现接口
*/
public class Mouse implements USB{
@Override
public void start() {
System.out.println("鼠标打开开关,按键,滚轮");
}
@Override
public void end() {
System.out.println("开关关了");
}
}
/**
* 定义的USB接口 : 规则指定
* 接口的规则 : 程序中的抽象方法
*/
public interface USB {
//设备开始工作
public abstract void start();
//设备结束工作
public abstract void end();
}
public class USBTest {
public static void main(String[] args) {
//测试笔记本案例
//创建笔记本对象
Computer computer = new Computer();
//调用笔记本的方法 useUSB
/* Mouse m = new Mouse();
computer.useUSB(m);*/
computer.useUSB( new Mouse() );
//调用笔记本的方法,传递键盘对象 (USB接口实现类对