こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

インタフェースについて教えてください。

インタフェースについて。
人間と犬を生成し、実行例のように動作するプログラムです。
(1)から(15)の後が解答欄です。
例:(2)の場合implementsが解答欄(空欄)

コンパイルができなかったのでどこの解答が間違っているか教えてください。



エラー詳細↓
Behave.java:6: エラー: シンボルを見つけられません
h1.play(h1.behaviortype.Walking);
^
シンボル: メソッド play(Behaviortype)
場所: タイプHumanの変数 h1
Behave.java:7: エラー: シンボルを見つけられません
d1.play(d1.behaviortype.Walking);
^
シンボル: メソッド play(Behaviortype)
場所: タイプDogの変数 d1
Behave.java:8: エラー: シンボルを見つけられません
h1.play(h1.behaviortype.Talking);
^
シンボル: メソッド play(Behaviortype)
場所: タイプHumanの変数 h1
Behave.java:9: エラー: シンボルを見つけられません
d1.play(d1.behaviortype.Barking);
^
シンボル: メソッド play(Behaviortype)
場所: タイプDogの変数 d1
エラー4個




【Behave】
class Behave{
public static void main(String[] args){
Human h1 = new Human("人間1");
Dog d1 = new Dog("犬1");

h1.play(h1.behaviortype.Walking);
d1.play(d1.behaviortype.Walking);
h1.play(h1.behaviortype.Talking);
d1.play(d1.behaviortype.Barking);
}
}



【Animal】
abstract class Animal{
String name;
Behaviortype behaviortype;
enum Behaviortype{
Walking,
Talking,
Barking
}
abstract public void behave(Behaviortype bt);
}



【Human】
class Human (1)extends Animal (2)implements Walker, Talker{
public Human(String n){
this.name = n;
}
@Override
public void behave(Behaviortype bt){
switch(bt){
case Walking:
(3)walk();
break;
case Talking:
(4)talk();
break;
}
}
@Override
public void (5)walk(){
System.out.println(this.name+"が歩きます。");
}
@Override
public void (6)talk(){
System.out.println(this.name+"が話します。");
}
}



【Walker】
(7)interface Walker{
void walk();
}



【Talker】
(8)interface Talker{
void talk();
}



【Barker】
(9)interface Barker{
void bark();
}



【Dog】
class Dog (10)extends Animal (11)implements Walker, Barker{
public Dog(String n){
this.name = n;
}
@Override
public void behave(Behaviortype bt){
switch(bt){
case Walking:
(12)walk();
break;
case Barking:
(13)bark();
break;
}
}
@Override
public void (14)walk(){
System.out.println(this.name+"が歩きます。");
}
@Override
public void (15)bark(){
System.out.println(this.name+"が吠えます。");
}
}






【実行例】java Behave

人間1が歩きます。
犬1が歩きます。
人間1が話します。
犬1が吠えます。

投稿日時 - 2019-09-24 20:44:37

QNo.9660283

すぐに回答ほしいです

質問者が選んだベストアンサー

HumanクラスやDogクラスのオブジェクトに対してplay()というメソッドを呼ぼうとしていますが、そのメソッドの定義がどこにもありませんね。

投稿日時 - 2019-09-24 23:08:56

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-