前提・実現したいこと
人間と犬を生成し、実行例のように動作するプログラムをつくっています。
コンパイルできて実行結果を表示したいです。
生している問題・エラーメッセージ
コンパイルができません。
エラーメッセージ↓
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個
該当のソースコード
言語はJavaです。
【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 extends Animal implements Walker, Talker{
public Human(String n){
this.name = n;
}
@Override
public void behave(Behaviortype bt){
switch(bt){
case Walking:
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+"が吠えます。");
}
}
試したこと
間違えてそうなところはコードを変えて試したりしました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー