最好尝试一下:
public interface Operation {
public int add();
}
public class SimpleOperation implements Operation {
@Override
public int add() {
return 0;
}
public int add(int id, String name) {
return id;
}
}
使用时:
Operation op = new SimpleOperation();
op.add(); // Valid
op.add(2, "two"); // Invalid
基本上,虽然您可以将该方法添加到类中,但如果接口中不存在该方法,那么如果您调用它的实例属于该接口,则您无法调用它。
然而,这是有效的,因为实例属于 class SimpleOperation
,它声明了重载方法:
SimpleOperation op = new SimpleOperation();
op.add(); // Valid
op.add(2, "two"); // Also valid
然而,这降低了接口的有用性。如果您热衷于重载方法,请考虑使用定义了方法的抽象超类并在子类中覆盖它们。或者,将原始方法和重载方法都添加到接口中。