如何设置将在类声明中使用的Input参数?

时间:2011-09-15 02:18:30

标签: java abstract-class

我有一个抽象类A,其中有一个名为public int get(int x, int y)的方法。

BCD有1个方法都是相同的,它们会扩展到抽象类A

在类Car中,Car构造函数接收String参数type,该参数应该用于决定BC,{{D中的哪一个1}}必须在课堂上使用。

显然,我正在使用基于if...else的{​​{1}}条件语句来执行此操作。

所以代码看起来像

type

是否有任何优雅的方法可以使用字符串参数来决定使用3个类中的哪一个?

2 个答案:

答案 0 :(得分:2)

您可以在构造函数中使用接口/抽象类作为参数,而不是使用String。

public Car(A a) { this.a = a; }

然后在其他地方:

B b = new B();
new Car(b);

这称为dependency injection

答案 1 :(得分:1)

您可以使用Class.forName(String)获取Class对象,然后使用newInstance()

对其进行实例化