以下代码段体现 非匿名类匿名对象、非匿名类匿名对象、匿名类匿名对象、匿名类非匿名对象4种组合
package p5;
public class UsbTest {
public static void main(String[] args) {
Computer c = new Computer();
// 创建了接口的非匿名实现类的非匿名对象
Flash flash = new Flash();
c.transferData(flash);
System.out.println("---------------------------------");
// 创建了接口的非匿名实现类的匿名对象
c.transferData(new Flash());
System.out.println("---------------------------------");
// 创建了接口的匿名实现类的非匿名对象
Usb phone = new Usb() {
@Override
public void start() {
System.out.println("手机开始工作");
}
@Override
public void stop() {
System.out.println("手机停止工作");
}
};
c.transferData(phone);
System.out.println("---------------------------------");
//接口匿名实现类的匿名对象
c.transferData(new Usb() {
@Override
public void start() {
System.out.println("耳机开始工作");
}
@Override
public void stop() {
System.out.println("耳机停止工作");
}
});
}
}
class Computer {
public void transferData(Usb usb) {
usb.start();
System.out.println("具体传输的细节");
usb.stop();
}
}
// 定义和电脑传输数据的规范 接口
interface Usb {
void start();
void stop();
}
class Flash implements Usb{
@Override
public void start() {
System.out.println("U盘开始工作");
}
@Override
public void stop() {
System.out.println("U盘结束工作");
}
}
class Player implements Usb{
@Override
public void start() {
System.out.println("打印机开始工作");
}
@Override
public void stop() {
System.out.println("打印机结束工作");
}
}



