一个类可以继承Java中的接口和基类吗?

时间:2014-03-13 15:22:37

标签: java inheritance interface

<。>在.Net中,您只需使用以下代码

即可
Public class MyClass:ISomeInterface, SomeBaseClass

在Java中可以做类似的事情吗?

我的代码如下

public class InputHander extends OnTouchListener implements IControlHandler

但是我收到了关于OnTouchListener

的错误“没有预期接口”

3 个答案:

答案 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