我想知道下一件事是否可以实施:
假设我有 2 个接口,而每个接口都有 1 个函数头。 例如,iterface1 具有函数 g(...),interface2 具有函数 f(...)
现在,我创建了一个类并声明该类正在实现这两个接口。在课堂上,我尝试做下一件事:
我开始实现函数 g(...),在它的实现中,我创建了一个实现 interface2 的本地类,并在这个类中添加了 f(...) 的实现。
我想知道下一件事是否可以实施:
假设我有 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
) 工作正常,但不能算作f
外部类的实现。您仍然需要f
在MyClass
:
MyClass.java:11: MyClass is not abstract and does not override abstract method
f() in Interface2
是的,这是合法的。然而,一个类没有实现一个接口,因为一个内部类实现了它。该类必须显式实现接口或将其自身声明为抽象。
是的,这是合法的。在您给出的示例中,您的类应该实现两个接口的所有方法,而您的本地类应该实现 interface2 的所有方法。