オーバーライド【override】
概要

ある場所で定義された設定や手続き、属性などを別の定義で上書きし、後者を優先して適用する仕組みや操作をオーバーライドという。複数の定義が重複した際にどれを有効にするかを決める手段として用いられる。
オブジェクト指向プログラミング(OOP)では、スーパークラス(親クラス/基底クラス)で定義されたメソッドを、そのクラスを継承したサブクラス(子クラス/派生クラス)で同じ名前で定義し直し、独自の処理に差し替えることをオーバーライドという。共通の基盤を引き継ぎつつ、特定のサブクラスだけ一部の挙動を変更したい場合などに用いられる。
オーバーライドの際は、元のメソッドと引数の型、数、順序を一致させることが求められる。言語によって扱いは異なり、Javaでは@Overrideアノテーションで意図的な再定義であることを明示してコンパイル時の誤り検出に役立て、C++言語では仮想関数(virtual)として宣言されたメソッドのみがオーバーライド可能である。
オーバーライドはポリモーフィズム(多態性)の基盤となる仕組みでもあり、Java、Python、C#、Rubyなど主要な言語で広くサポートされている。似た用語に「オーバーロード」があるが、これは同一クラス内で引数の構成が異なる同名のメソッドを複数定義する仕組みであり、継承関係における再定義を指すオーバーライドとは異なる。
プログラミング以外でも、あらかじめ定義されたデフォルト値や継承された設定を、利用者や管理者が独自に書き換えてその内容を優先的に適用する操作をオーバーライドと呼ぶことがある。例えば、CSSで親要素や外部スタイルシートの定義をより詳細度の高い記述で上書きする操作や、システム全体の共通設定に対して特定の利用者やプロジェクトだけ異なる設定値を適用するケースなどがこれに当たる。