我正在创建一个程序,其中有各种类将美元兑换成各种不同的货币。例如,Yen的类,Euro的类等。每个类实现接口Converter
,其中包含方法toDollar()
和fromDollar()
。
interface Convert {
double fromDollar(double dollars);
double toDollar(double otherCurrency);
double dollar = 1.1; //each euro is 1.1 dollar
}
但是,我正在尝试将这些方法实现为static
,因为我不需要该类的实例来转换美元。但是,当我尝试在接口中实现/覆盖这些方法时,我收到错误。我该怎么办呢?
public class toEuro implements Convert{
private final double euro = .91;
public double fromDollar(double dollars){
return dollars * euro;
}
public double toDollar(double euro){
return euro / dollar;
}
public static void main(String args[]){
toEuro tE = new toEuro();
System.out.println(toE.fromDollar(12833.23));
}
}
我不想制作一个toEuro的实例!我应该能够静态访问它。
答案 0 :(得分:2)
静态方法不是继承的,也不能由接口指定。也就是说,看起来toEuro
不是一个类可能更有意义,但也许你应该写Convert toEuro = new MyConvert(.91)
MyConvert
只是一个带乘数的简单实现。< / p>
答案 1 :(得分:1)
OOP语言中接口的要点是允许您为接口的每个实例使用不同的实现。
如果所有方法都是静态的,那么首先拥有一个接口有什么意义呢?