天天看点

接口的匿名实现类对象

package oopinterface;

public class USBTest {
    public static void main(String[] args) {
        Computer computer = new Computer();
        // 1.接口的非匿名实现类的非匿名对象
        Flash flash = new Flash();
        computer.transformData(flash);//多态

        System.out.println("=====================================");

        // 2.接口的非匿名实现类的匿名对象
        computer.transformData(new Printer());

        System.out.println("=====================================");

        // 3.接口的匿名实现类的非匿名对象
        USB phone = new USB() {//多态  接口本身不能够实例化
            @Override
            public void start() {
                System.out.println("接口的匿名实现类的非匿名对象");
                System.out.println("手机开启工作");
            }

            @Override
            public void end() {
                System.out.println("接口的匿名实现类的非匿名对象");
                System.out.println("手机结束工作");
            }
        };
        computer.transformData(phone);

        System.out.println("=====================================");

        // 4.接口的匿名实现类的匿名对象
        computer.transformData(new USB() {//多态  接口本身不能够实例化
            @Override
            public void start() {
                System.out.println("接口的匿名实现类的匿名对象");
                System.out.println("手柄开启工作");
            }

            @Override
            public void end() {
                System.out.println("接口的匿名实现类的匿名对象");
                System.out.println("手柄结束工作");
            }
        });

    }

}


class Computer {
    public void transformData(USB usb) {
        usb.start();
        usb.end();
    }
}


interface USB {
    public abstract void start();

    public abstract void end();
}


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