質問: 同じメソッドにいろんな処理を持たせよう! という概念 オーバーライド、オーバーロードはその具体的な方法。 ポリモーフィズムという考え方の中に、「オーバーライド」、「オーバーロード」 がある、ということでしょうか?
回答: ポリモーフィズムは下記のようなコードで発揮できます。 ``` List items = new ArrayList(); items.add(new (Circle()); items.add(new (Rect()); items.add(new (Elipse()); for (Item item : items) { // 図形を描画 item.draw(); } ``` 下記2つの条件を満たすだけで、同一メソッドであるdraw()を読ん でいるにも関わらず、複数パターンの図形を描画することができま す。 ・どの図形もItemクラスを継承している ・draw()メソッドを適切にオーバーライドしている もしポリモーフィズムという概念が無い場合、コードは下記のように 煩雑なものになっていることでしょう。 ``` if (描画対象が円) { // 円を描画 drawCircle(); } else if (描画対象が四角) { // 四角を描画 drawRect(); } else if (描画対象が楕円) { // 楕円を描画 drawElipse(); } ```