オーバーライド
オーバーライドとは、オブジェクト指向プログラミングにおいて用いられるコーディングであり、親クラスで定義されたメソッドを子クラスで再度定義することで、メソッドを上書きし機能を変更することです。これはオブジェクト指向プログラミングによるポリモーフィズム(多態性)を表現する上でも、基本的な方法です。
オーバーライドを行うには、親クラスと子クラスにおいて、メソッドの名称、引数の個数とそのデータ型、メソッドの戻り値のデータ型が全て同じにする必要があります。この条件さえ満たせば、インスタンスから呼び出されたメソッドは自動的にオーバーライドされます。
具体例を挙げれば、「動物」という親クラスに対して、子クラス「犬」、「馬」が定義されたとします。「動物」クラスには走るメソッドRunがあり、子クラスでもそれぞれ同名のメソッドを持ちます。「動物」型のクラスAnimalに「犬」クラスと「馬」クラスのインスタンスを代入したとします。そして以下の記述を行います。
Animal->Run();
この時、Animalのインスタンスが犬クラスの場合は、犬クラス内のRun()メソッドが実行され、馬クラスの場合は馬クラスのものが実行されます。同じ記述でも異なる処理が実行されることになります。
オーバーロードと似ている名称ですが、異なる概念です。