问题描述
|
我想知道下一件事情是否可能实现:
可以说我有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的所有方法。