0

我正在寻求在 java 中访问多种不同类型的系统的帮助,就好像它们是相同的一样。

例如,我有课程

private class SystemA{

    public void in(boolean input){
      //do x;
    }
    public boolean out(){
      //return x;
    }
}

假设我想要一个不同系统的 ArrayList。这些系统都像 SystemA 一样实现了输入和输出的功能,但它们将是不同的对象,都具有不同的内部架构。

例如,我想遍历上述数组列表,在所有对象上调用 out() - 我怎么能:

存储多种不同的对象类型。确保我可以调用 arraylist 中对象的 in 和 out 函数,而不必担心该对象是一种或另一种特定类型。

4

2 回答 2

2

让您的系统类实现一个新MySystem接口:

public interface MySystem {
    void in(boolean input);
    boolean out();
}

例如:

private class SystemA implements MySystem {
    @Override
    public void in(boolean input) { ... }
    @Override
    public boolean out() { ... }
}

然后,您的ArrayList遗嘱将如下所示:

List<MySystem> list = new ArrayList<MySystem>();
List<? extends MySystem> list = someFactoryMethod();

我建议阅读Java 教程“什么是接口?” 更多细节。另外,请阅读一般的“亚型多态性”

于 2012-10-28T07:22:00.693 回答
0

这是一个广泛的问题。你需要的是多态性。在此处阅读有关 Java 多态性的信息:http: //home.cogeco.ca/~ve3ll/jatutor5.htm

于 2012-10-28T07:21:50.210 回答