コース: プログラミングの基礎:オブジェクト指向

今すぐコースを受講しましょう

今すぐ登録して、24,700件以上登録されている、業界エキスパート指導のコースを受講しましょう。

多態性とは

多態性とは

このレッスンでは、オブジェクトごとに 異なる動作をさせる 多態性とは何かについて説明します。 オブジェクト指向3大要素の 最後は多態性です。 多態性はポリモーフィズムとも呼ばれます。 これは3大要素の中でも最も複雑ですが 非常に強力です。 多態性によってオブジェクトごとに 異なる動作をさせることができます。 これだけでは何のことだか わからないかもしれませんね。 プラス記号を例に、説明してみましょう。 多くのプログラミング言語では 変数+変数と記述した場合、 変数が整数なら数値の加算を行います。 けれども変数が文字列の場合には 文字列の連結を行います。 つまり変数の型によって +記号の働きが異なるのです。 この例は多くのプログラミング言語に 組み込まれていますが、 独自のクラスと独自のオブジェクトでも 同じことができます。 例えば、金融アプリケーション用の 銀行口座クラスを定義し、 口座残高などの属性��入金メソッド、 引き出しメソッドを定義します。 次に銀行口座クラスを継承して 定期預金口座クラス、 当座預金口座クラス、 投資講座クラスの 3つのサブクラスを作成します。 継承のレッスンで説明したように これらのサブクラスは、スーパークラスの 基本的な定義を共有しています。 つまり、属性として口座番号、残高を持ち 振る舞いとして入金する、 引き出すを実行することができます。 しかし定期預金口座クラスには 口座預金クラスにはない金利が 追加される可能性があり、 引き出すメソッドの内容が 複雑になるかもしれません。 例えば 30 日以内に引き出した場合には 違約金を課すなどが考えられます。 また、投資講座クラスのためだけに より特殊なバージョンを 提供することもできます。 引き出すメソッドは 元々銀行口座クラスで定義されていたので この3つのクラスはそれを継承していますが それぞれのクラスで 異なる処理を行うことができます。 これは、スーパークラスのメソッドを オーバーライドするというものです。 つまり、継承したメソッドが必要ないときには 無効にして、 新しいメソッドを 実行することができるのです。 そして、多態性により、どのクラスから インスタンス化されたのかを知らなくても 固有の引き出しメソッドを 呼び出すことができます。 +記号で加算と連結の動作が…

目次