|
オブジェクト指向プログラミングにおいてオーバーライド ()とは、スーパークラスで定義されたメソッドをサブクラスで定義しなおし、動作を上書きすることである。 あるクラス Base にメソッドprint があり、あるクラスDerived がクラスBase を継承したとする。そのとき、クラスDerived はクラスBase にあるメソッドprint をオーバーライドすることにより、再定義することができる。これはオブジェクト指向プログラミングにおけるポリモーフィズムを実現する際によく使われる。オーバーライドを可能とする条件として、引数の型と数が統一されている必要がある。 メソッドのオーバーロード(多重定義、')と混同されることがあるが、まったく異なる概念である。 ※Rubyのようにオーバーロードの概念がなく、引数の型や数の条件がなくメソッド名が同一なだけでオーバーライドが成立する言語もある。)と混同されることがあるが、まったく異なる概念である。 ※Rubyのようにオーバーロードの概念がなく、引数の型や数の条件がなくメソッド名が同一なだけでオーバーライドが成立する言語もある。 == Java言語によるオーバーライドの例 == class Base class Derived extends Base このクラスを実行するプログラムを public class Main として実行すると ■インスタンスのメソッドを呼び出し (Baseインスタンス) Base: Base Base: print ■インスタンスのメソッドを呼び出し (Derivedインスタンス) Base: Base Derived: Derived Derived: print ■インスタンスのメソッドを呼び出し (Base型変数中のDerivedインスタンス) Base: Base Derived: Derived Derived: print //オーバライド ■クラスメソッドを実行 (Base) Base: staticPrint ■クラスメソッドを実行 (Derived) Derived: staticPrint という結果が得られる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「オーバーライド」の詳細全文を読む スポンサード リンク
|