是否有可能在课堂上强制签名几个方法?
我们说我有Interface
MyInterface:
public interface MyInterface
{
public void method(int a);
}
我希望在MyInterface
课程中实现MyInterfaceClass
,MyInterfaceClass
中的每个方法都有相同的签名?
public class MyInterfaceClass implements MyInterface
{
public void method_A(int a) { /*something */ }
public void method_B(int a) { /*something */ }
public void method_C(int a, int b) { /*something */ } // ERROR cause of signature, won't compile
}
MyInterfaceClass
中的方法数量未知。
答案 0 :(得分:1)
我不能确切地说出你在这之后是什么?在java中,方法的签名由6个因素组成:
如果您希望在界面中实现该方法,则必须匹配包含该名称的所有这些条件。此外,在类中,您只能实现接口的方法ONCE。如果您尝试使用相同的args,名称,隐私级别等实现一个方法...两次,那么您的类将无法编译。如果你在同一个类中实现了两次,java虚拟机将如何知道调用哪个方法?
为什么要在一个类中实现两次相同的方法?也许你正试图改进你的设计,但是你提出了错误的问题?
答案 1 :(得分:0)
在上面的代码示例中,MyInterfaceClass不能编译的唯一原因是你没有定义方法(int a)。与method_C无关。
当您采用接口时,必须实现接口中的每个方法(除非您正在创建抽象类)。