package com.winson.OOP;
/**
* @description:接口与接口多态性测试
* @date: 2020/7/12 15:25
* @author: winson
*/
public class USBTest {
public static void main(String[] args) {
Computer computer = new Computer();
//1、创建了接口的非匿名实现类的非匿名对象
UDisk uDisk = new UDisk();
//利用接口的多态性
computer.transferData(uDisk);
//2、创建了接口的非匿名实现类的匿名对象
computer.transferData(new printer());
//3、创建了接口的匿名实现类的非匿名对象
USB phone = new USB() {
@Override
public void start() {
System.out.println("手机开始工作");
}
@Override
public void end() {
System.out.println("手机结束工作");
}
};
computer.transferData(phone);
//4、创建了接口的匿名实现类的匿名对象
computer.transferData(new USB() {
@Override
public void start() {
System.out.println("扫描仪开始工作");
}
@Override
public void end() {
System.out.println("扫描仪结束工作");
}
});
}
}
class Computer {
public void transferData(USB usb) {
usb.start();
System.out.println("具体传输数据的细节");
usb.end();
}
}
interface USB {
void start();
void end();
}
class UDisk implements USB {
@Override
public void start() {
System.out.println("U盘开始工作");
}
@Override
public void end() {
System.out.println("U盘结束工作");
}
}
class printer implements USB {
@Override
public void start() {
System.out.println("打印机开始工作");
}
@Override
public void end() {
System.out.println("打印机结束工作");
}
}