Python オーバーライドと多重継承

クラスについてもう少し掘り下げていきたいと思います。基礎編ではクラスの継承までを学びましたが、これにオーバーライド、多重継承の考えを理解していただきたいと思います。  

オーバーライド

サブクラスがスーパークラスを継承することで、スーパークラスの機能を継承することができます。ただ、実際にコードを書いていくと継承するだけではなく継承した機能を書きかえたくなったり、追加したくなったりすることがあります。このようにクラスを再定義することをオーバーライドと呼びます。

スーパークラスCalcを定義して定数aとbの和を求めるaddメソッドを定義します。 次にCalcを継承するサブクラスNewCalcを定義したあとadd(self)メソッドをオーバーライドします。 次にaとbの差を求めるsubメソッドを定義します。結果を出力します。

二つのメソッドの結果が出力されました。

多重継承

多重継承とはあるサブクラスが複数のスーパークラスを継承することです。例文を作成して学びましょう。一人の人間がいくつかスポーツを習得するということを表現してみましょう。

Player、Ballgame、Basketballというクラスを定義します。次にPlaysportsというクラスを定義して先の三つのクラスを継承することができます。  

まとめ

今回はクラスの中で、オーバーライド、多重継承といったワンランク上の内容をご紹介しました。  

 

オーバーライドと多重継承

クラスメソッド

連載目次

初心者にもわかるオブジェクト指向

クラス

継承

ポリモーフィズム

インスタンス変数の隠ぺい

オーバーライドと多重継承

クラスメソッド

名前空間

グローバル変数とローカル変数の使い方

クラス変数にメソッドからアクセスする場合

カプセル化、プロパティ、ゲッター、セッターについての解説