如何在Java中的方法中将接口的实现作为变量传递?

时间:2013-04-12 23:45:21

标签: java interface

我们有一个界面Math

我们有Math的两个实现(比如它们被称为Math1Math2)。该项目的一小部分能够在两者之间切换。

在一个班级(比如叫ClassName)我们是由我们的教师提供的,我们有:

public static int evaluate(Math impl)

我有:

ClassName.evaluate(Math1);

它说无法找到符号。我试着把它放在引号中,但那是一个字符串。我试图谷歌的东西尝试,但我找不到任何有用的东西(也许我只是在寻找错误的东西)。这些文件位于同一个包中。

如何通过接口实现?

1 个答案:

答案 0 :(得分:3)

您正在传递类名而不是类实例。

试试这个:

// Evaluate with Math1.
Math m1 = new Math1();
ClassName.evaluate(m1);

// Evaluate with Math2.
Math m2 = new Math2();
ClassName.evaluate(m2);