- ベストアンサー
デザインパターン:Adapterパターンで
書籍でAdapterパターンを学習しているのですが、 一箇所、どうしてこうなるのかわからないところがあります。 Printインターフェース public interface Print { public abstract void printWeak(); public abstract void printStrong(); } Bannerクラス public class Banner { private String string; public Banner(String string){ this.string = string; } public void showWithParen(){ System.out.println("showWithParen:" + string + "★"); } public void showWithAster(){ System.out.println("showWithAster:" + string + "☆"); } } PrintBannerクラス public class PrintBanner extends Banner implements Print { public PrintBanner(String string) { super(string); } public void printWeak() { showWithParen(); } public void printStrong() { showWithAster(); } } Mainクラス public class Main { public static void main(String[] args) { Print p = new PrintBanner("Hello World"); // PrintBanner p = new PrintBanner("Hello World"); p.printWeak(); p.printStrong(); } } Mainクラスの部分で、 Print p = new PrintBanner("Hello World"); という部分がありますが、書籍の解説では 「PrintBannerのインスタンスをPrintインターフェース型の変数に代入していることに注意して下さい。」 と書かれています。が、意味がよくわかりません・・・。 ちなみに、 PrintBanner p = new PrintBanner("Hello World"); でも出力結果は同じです。 Print p = new PrintBanner("Hello World");の部分の具体的な説明が できる方、いらっしゃいますでしょうか? 教えて下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- kacchann
- ベストアンサー率58% (347/594)
- takataka111
- ベストアンサー率46% (23/50)
お礼
ngsvxさん、わかりやすい例をあげていただき、 ありがとうございました!