JAVA基础复习-接口匿名实现类的对象

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("打印机结束工作");

    }
}
原文地址:https://www.cnblogs.com/elnimo/p/13288906.html