Public class MyClass:ISomeInterface, SomeBaseClass
在Java中可以做类似的事情吗?
我的代码如下
public class InputHander extends OnTouchListener implements IControlHandler
但是我收到了关于OnTouchListener
的错误“没有预期接口”答案 0 :(得分:6)
是的,使用extends
关键字进行类继承,使用implements
进行接口实现:
public class MyClass extends SomeBaseClass implements SomeInterface
在您的问题编辑中,您应该在类继承的类声明中使用extends
。换句话说,一个类只能从另一个类扩展,而不能从接口扩展。不允许多类继承。如果您想要实现接口,请仅使用implements
关键字。所以,你的代码将是:
public class InputHander implements OnTouchListener, IControlHandler
更多信息:
答案 1 :(得分:3)
是。尝试一下需要几秒钟的时间:
public class MyClass extends MyAbstractClass implements MyInterface
答案 2 :(得分:2)
为了防止如果您的语言支持多重继承(例如C ++)而出现的陷阱和复杂性,Java允许您从一个类继承(使用extends
那个类可能是abstract
}也可能不是implements
)和任意数量的接口(使用public class MyClass
extends SomeBaseClass
implements SomeInterface1, SomeInterface2
)。
所以这是有效的:
{{1}}
Java 8将允许您在接口中使用默认方法,但它已经足够仔细地实现,以避免多重继承歧义。
请参阅Interface with default methods vs Abstract class in Java 8