java - 如何打印接口(interface)方法

标签 java

如何打印接口(interface)的连接方法? 我只想通过最小化类修改来修改电源。

如果我使用 arr[0].connect(); 错误 : Device 类型的 connect() 方法未定义

public class main{

    private static Device arr[];

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        init();
        arr[0].print();
        arr[1].print();

    }

    public static void init() {
        arr = new Device[2];
        arr[0] = new Printer();
        arr[1] = new UsbMem();
    }

}

public interface Connectable {
    public static final String name = ":USB";
    public abstract void connect();
}

public abstract class Device {
    public abstract void print();
}

public class Printer extends Device implements Connectable {

    public void print() {
        System.out.println("It's a printer");
    }

    public void connect() {
        System.out.println(name + "connect with printer");
    }
}

public class UsbMem extends Device implements Connectable {

    public void print() {
        System.out.println("USB memory");
    }

    public void connect() {
        System.out.println(name + "connect with usb memory");
    }
}

这是一台打印机。 :USB连接打印机 USB存储器 :USB 连接 USB 存储器

最佳答案

设备需要实现Connectable

public class Main {

    private static Device arr[];

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        init();
        arr[0].print();
        arr[1].print();
    }

    public static void init() {
        arr = new Device[2];
        arr[0] = new Printer();
        arr[1] = new UsbMem();
    }
}

public interface Connectable {
    public static final String name = ":USB";
    public abstract void connect();
}

public abstract class Device implements Connectable {
    public abstract void print();
}

public class Printer extends Device {

    public void print() {
        System.out.println("It's a printer");
    }

    public void connect() {
        System.out.println(name + "connect with printer");
    }
}

public class UsbMem extends Device {

    public void print() {
        System.out.println("USB memory");
    }

    public void connect() {
        System.out.println(name + "connect with usb memory");
    }
}

关于java - 如何打印接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55616910/

相关文章:

java - 如何在javaFX中像div一样动态生成VBox

java - 如何重构两种非常相似的方法

java - Netty:如果是 'keep-alive' 连接,我应该关闭 Channel 吗?

java - jstring 到 char* 在 c 用法中未转换为可打印格式

java - 在不阅读的情况下拆分文本文件

java - Spring Boot 命令行属性不覆盖 application.properties 中定义的属性

java - 无法 Autowiring 项目中的实体 Bean

java - 将 keystore 密码从无密码更改为非空密码

java - GCJ 创建重复的虚拟符号

java - 正则表达式将多个数字与一行中的空格合并