package chapter04;
public class Java22_Object_接口 {
public static void main(String[] args) {
// TODO 面向对象 - 接口
// 所谓的接口,可以简单理解为规则、规范
// 基本语法:interface 接口名称 { 规则属性,规则的行为 }
// 接口其实是抽象的
// 规则的属性必须为固定值,并且不能修改
// 属性和行为的访问权限必须为公共的,因为规则就是要大家都能够看得到
// 属性应该是静态的,与具体对象无关
// 行为应该是抽象的,应该要让具体对象来决定具体怎么来做这个行为
// 那行为是抽象的,那接口就是抽象的,那也根本就构成不了具体的对象
// 接口(规则)和类是两个层面的东西
// 类可以构建对象,接口跟具体对象都没有关系,只是要让那个对象遵从那个规则(接口)
// 接口可以继承多个其他接口,但是类只能继承一个父类
// 类的对象需要遵循规则(接口),在java中,这个遵循,称之为实现,类需要实现接口,
Computer computer = new Computer();
Light light1 = new Light();
computer.usb1 = light1; // 把电灯插入到电脑的usb1接口
Light light2 = new Light();
computer.usb2 = light2; // 把电灯插入到电脑的usb2接口
computer.powerSupply(); // 电脑给电灯供电
}
}
interface USBInterface {}
// USB供电接口
interface USBSupply extends USBInterface { // 继承USB接口,要遵循其规范
void powerSupply(); // 接口中的行为方法是抽象的
}
// USB接电接口
interface USBReceive extends USBInterface { // 继承USB接口,要遵循其规范
void powerReceive(); // 接口中的行为方法是抽象的
}
// 具体的Computer电脑类就来实现USB的供电方式,使其符合USB接口供电规则,符合USB接口供电规范
class Computer implements USBSupply {
// 电脑中有很多的接口,比如下面的usb1和usb2
public USBReceive usb1;
public USBReceive usb2;
public void powerSupply() {
System.out.println("电脑提供能源");
usb1.powerReceive(); // 让usb1的设备来接受能源
usb2.powerReceive(); // 让usb2的设备来接受能源
}
}
// 小台灯来接受能源,但它要符合USB接口接电规则
class Light implements USBReceive {
public void powerReceive() {
System.out.println("电灯接受能源");
}
}
结果: