如何打印界面方法

问题描述 投票:0回答:2

如何打印界面的连接方法?我想通过最小化类修改来修改电源。

如果我使用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存储器

java
2个回答
1
投票

Device需要实施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");
    }
}

0
投票

将对象转换为Connectable

((Connectable)arr[0]).connect()

© www.soinside.com 2019 - 2024. All rights reserved.