一个类是否可以实现两个接口,每个接口都包含一个具有相同方法头的方法?

时间:2013-07-10 19:00:10

标签: java function interface

我被问到这是一次采访,但还没有找到答案。

4 个答案:

答案 0 :(得分:2)

  

这可能吗?

是的,这是可能的。这没有任何区别。您的类仍然必须提供单个方法定义。这将满足两个接口的合同。

答案 1 :(得分:2)

虽然如果两个接口提供不同的合同或不同的预期行为,但是您的代码可能会遇到细微的,难以调试的问题,因为您可以将对象传递给期望复杂性的方法,这是可以接受的。一个界面,但遭遇另一个界面的错综复杂。

答案 2 :(得分:1)

是的,这是可能的。如果两个原型或方法头都相同,那么您只需在类中编写该方法,并且您已经固有地满足了与两个接口的契约(假设还包括所有其他方法)。

接口不告诉你如何实现某些东西,它是一个契约,要求某些方法出现在实现该接口的类中。现在,可能存在“预期的”冲突行为的问题;但是,如果按照设计,你应该实现两个接口,这是一个完全可以接受的做法。

编辑:这是一个(请求的)示例:

public interface One
{
    void test(String x);
}

public interface Two
{
    void test(String x);
}

public class InterfaceTest implements One, Two
{
    public void test(String s)
    {
        System.out.println(s);
    }
}

答案 3 :(得分:-1)

是的,这是可能的。有些接口根本没有必需的方法。 Serializable是一个。