假设我有两个自定义类和一个方法,如下所示:

class A {
  public void think() {
    // do stuff
  }
}

class B {
  public void think() {
    // do other stuff
  }
}

Class C {
  public void processStuff(A thinker) {
    thinker.think();
  }
}

有没有办法像这样写processStuff()(仅说明):
public void processStuff({A || B} thinker) {...}

或者换句话说,有没有一种方法可以编写一个带有一个可以接受多种类型的参数的方法,从而避免多次键入processStuff()方法?

最佳答案

在接口(interface)中定义所需的行为,让AB实现该接口(interface),并声明processStuff以该接口(interface)的实例作为参数。

interface Thinker {
    public void think();
}

class A implements Thinker {
    public void think() { . . .}
}

class B implements Thinker {
    public void think() { . . .}
}

class C {
    public void processStuff(Thinker thinker) {
        thinker.think();
    }
}

10-08 00:37