インタフェースについて教えてください。
インタフェースについて。
人間と犬を生成し、実行例のように動作するプログラムです。
(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が吠えます。
お礼
凄く良く分かる回答をありがとうございます。ではたくさんの人が加入するサイトではとても重宝するのですね。
補足
ついでにお聞きしたいのですが、音声で判別するようなサイトもあると聞いたのですが、これも要はパソコンが判別できない音を人間が判別するということで良いのでしょうか