4

Moveableここに2つのインターフェースがあるとしましょうWalkable(悪い例は申し訳ありませんが、もっと良いものがあれば投稿してください)

interface Runnable{
    void run();
}

interface Walkable extends Runnable {
    void walk();
}

public class Human implements Walkable {

}

そして、インターフェースWalkableはのサブクラスです。クラスがインターフェースを実装するRunnable場合、クラスはインターフェースおよびインターフェースからの実装を提供する必要がありますか?インターフェイスはインターフェイスから抽象メソッドを継承しますか?HumanWalkableHumanvoid 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は、ImplementingクラスがInterfaceで宣言されたすべてのメソッドを実装する必要があるコントラクトです。

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

はい、それはオブジェクト指向のInheritance概念です。

于 2012-07-03T14:21:58.353 に答える
1

HumanクラスがWalkableインターフェースを実装する場合、Humanクラスはインターフェースwalkableからのvoidwalkとインターフェースrunnableからのvoidrun()の実装を提供する必要がありますか?

はい。コードをコンパイルしようとすると、これを非常に簡単に発見できたはずです。runクラスにはandwalkメソッドの実装がないため、コンパイラは文句を言いHumanます。

インターフェイスwalkableは、インターフェイスrunnableから抽象メソッドrun()を継承しますか?

はい。

于 2012-07-03T14:16:10.690 に答える
1

WalkableはRunnableであるため、run()関数を定義する必要があります。

于 2012-07-03T14:17:05.107 に答える
0

はい、インターフェースは複数のインターフェースを拡張でき、実装クラスは実装インターフェースによって継承されたすべてのメソッドを実装する必要があります。

だからあなたの質問にはい、あなたは両方の方法を実装しなければなりません

于 2012-07-03T14:19:19.060 に答える
0

人間のクラスは両方のメソッドを実装する必要があります。そうでない場合は、抽象として宣言する必要があります。そして、はい、WalkableインターフェースはRunnableインターフェースからメソッドrun()を継承します。

インターフェイスと継承について詳しくは、こちらをご覧ください。

于 2012-07-03T14:26:19.827 に答える
0

はい、あなたの人間はwalkANDする必要がありますrun

それは、物事を逆にすることを意味しますか?走れば確かに歩くことができますが、けがをした人は走らずに歩くことができます...

于 2012-07-03T14:17:10.503 に答える