4

假设我在这里有 2 个接口,Moveable并且Walkable(对不起,这个不好的例子,但如果你有更好的,请贴出来)

interface Runnable{
    void run();
}

interface Walkable extends Runnable {
    void walk();
}

public class Human implements Walkable {

}

并且接口Walkable是的子类Runnable,当Human类实现Walkable接口时,该类应该从接口和接口Human提供实现吗?接口是否继承了接口的抽象方法?void walk()Walkablevoid run()RunnableWalkablerun()Runnable

4

7 回答 7

7

是的,您的 Human 类将需要实现 walk() 和 run() 方法。

于 2012-07-03T14:16:03.940 回答
2

should the human class provide implementations for void walk from the interface walkable and void run() from the interface runnable?

是的,当你的 Walkable 接口扩展Runnable它也继承run方法意味着现在如果Human类正在实现Walkable接口它必须实现这两个方法,否则它应该是abstract

实现一个Interface是一个契约,其中实现类必须实现接口中声明的所有方法。

does the interface Walkable inherit the abstract method run() from the interface Runnable?

是的,这是 OOPSInheritance概念。

于 2012-07-03T14:21:58.353 回答
1

当 Human 类实现 Walkable 接口时,human 类是否应该从可步行接口提供 void walk 和从可运行接口提供 void run() 的实现?

是的。通过尝试编译代码,您可以很容易地发现这一点。编译器会抱怨,因为 class 中没有runandwalk方法的实现Human

接口walkable 是否继承了接口runnable 的抽象方法run()?

是的。

于 2012-07-03T14:16:10.690 回答
1

Walkable 是 Runnable,因此它必须定义 run() 函数。

于 2012-07-03T14:17:05.107 回答
0

是的,你的人应该walkAND run

这意味着将事情颠倒过来吗?如果你跑步,你当然可以走路。但是受伤的人可以不跑步而走路......

于 2012-07-03T14:17:10.503 回答
0

人类类需要实现这两种方法,否则 - 您必须将其声明为抽象的。是的,Walkable 接口继承了 Runnable 接口的 run() 方法。

您可以在此处了解有关接口和继承的更多信息。

于 2012-07-03T14:26:19.827 回答
0

是的,一个接口可以扩展多个接口,实现类应该实现实现接口继承的所有方法。

所以你的问题是肯定的,你必须实现这两种方法

于 2012-07-03T14:19:19.060 回答