Java本地类和接口

问题描述

| 我想知道下一件事情是否可能实现: 可以说我有2个接口,而每个接口都有1个函数头。 例如,iterface1具有函数g(...),interface2具有函数f(...) 现在,我创建一个类,并声明该类正在实现这两个接口。 在课堂上,我尝试做下一件事: 我开始实现函数g(...),并在其实现中创建一个实现interface2的本地类,然后将f(...)的实现添加到此类中。     

解决方法

我不太清楚你的意思。我正在想像这样的事情:
interface Interface1
{
    public void g();
}

interface Interface2
{
    public void f();
}

class MyClass implements Interface1,Interface2
{
    @Override
    public void g()
    {
        class InnerClass implements Interface2
        {
            @Override
            public void f()
            {
            }
        }
    }
}
这是你的意思吗? 在这种情况下,答案是否定的。内部类(
InnerClass
)工作正常,但不算作外部类class2ѭ的实现。您仍然需要在
MyClass
中实现
f
MyClass.java:11: MyClass is not abstract and does not override abstract method
f() in Interface2
    ,是的,这是合法的。但是,类不会实现接口,因为内部类会实现它。该类必须显式实现接口或将其声明为抽象。     ,是的,这是合法的。在您给出的示例中,您的类应实现两个接口的所有方法,而本地类应实现interface2的所有方法。