简体   繁体   English

如何打印界面的方法

[英]How do I print method of interface

How can I print connect method of interface? 如何打印接口的连接方法? I'd like to modify the mains only by minimizing the class modification. 我只想通过最小化类修改来修改电源。

if i use arr[0].connect(); 如果我使用arr [0] .connect(); Error : The method connect() is undefined for the type 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");
    }
}

It's a printer. 这是打印机。 :USB connect with printer USB memory :USB connect with usb memory :USB与打印机USB存储器连接:USB与USB存储器连接

Device needs to implement Connectable . 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");
    }
}

将对象投射到可连接对象

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM