
240
7
章
七面鳥アダプタ
public interface Turkey {
public void gobble();
public void fly();
}
public class MallardDuck implements Duck {
public void quack() {
System.out.println("
ガーガー
");
}
public void fly() {
System.out.println("
飛んでいます
");
}
}
public interface Duck {
public void quack();
public void fly();
}
カモのように歩き、カモのようにガーガー
鳴くものがいたら、それはカモに違いない
カモアダプタでラップされた七面鳥かもし
れない
それではアダプタの動作を確認しましょう。
1
章で登場したカモを覚えて
いますか? その
Duck
インタフェースとカモクラスの簡易版を見直してみま
しょう。
今回は、カモがガーガー鳴
いて(
quack
)飛べるよう
にする
Duck
インタフェー
スを実装します。
Duck
のサブクラスの
MallardDuck
はこのようになっています。
簡単な実装:
MallardDuck
はしていること
を出力するだけです。
ここで、新顔の鳥が登場します。
七面鳥はガーガーとは鳴かずに、ゴロゴ
ロと鳴きます(
gobble
)。
七面鳥は飛べますが、短い距離し
か飛べません。