基本情報暗記無料で始める

オーバーライドとは?おーばーらいど

オーバーライドとは、オブジェクト指向プログラミングで、親のクラスから引き継いだメソッドを、子のクラスで同じ名前・同じ引数のまま中身だけ書き換えること。クラスはデータと処理をひとまとめにした設計図、メソッドはクラスが持つ処理(関数)のことで、親のクラス(スーパークラス)の性質を子のクラス(サブクラス)が引き継ぐことを継承という。オーバーライドすると、同じ名前のメソッドを呼び出しても、実際に動く処理はそのデータがどのクラスのものかによって変わる。これが多相性(ポリモーフィズム:同じ呼び出し方で、相手に応じて違う動きをすること)を実現する手段になる。

最終更新:2026-10-10

試験情報

基本情報技術者試験の過去問では1回出題されています。

基本情報技術者試験の頻出用語/テクノロジ系

この語が出る過去問を解く →

背景

共通の部分を親のクラスにまとめておけば、子のクラスは同じ処理を書き直さずに済む。しかし、子のクラスごとに少しだけ振る舞いを変えたい場面は必ず出てくる。そのたびに別の名前のメソッドを作ると、呼び出す側が「このデータは円だからこの名前、長方形だからこの名前」と場合分けを書くことになり、種類が増えるほどプログラムが膨らむ。呼び出し方は親と同じにそろえたまま、中身だけを子のクラスで差し替えられるようにしたのがオーバーライドである。

具体例

親のクラス「図形」に「面積を求める」メソッドを用意し、子のクラス「円」では半径×半径×円周率、「長方形」では縦×横で計算するように、それぞれオーバーライドする。呼び出す側は、図形を並べた配列を順に取り出して「面積を求める」を呼ぶだけで、円なら円の、長方形なら長方形の計算が自動で選ばれる。Javaでは、すべてのクラスの親にあたるObjectクラスが「文字列にして返す」toStringメソッドを持っていて、自分で作ったクラスでこれをオーバーライドし、中身を読みやすく表示させるのがよく使われる例である。

試験での引っ掛け

オーバーロードとの取り違えが定番。オーバーロードは、同じ名前で引数の型や個数が違うメソッドを複数定義することで、継承がなくても1つのクラスの中で行える。オーバーライドは、継承した親のメソッドを子のクラスで、名前も引数も同じまま定義し直すことである。「引数が異なる」と書かれていたらオーバーロードの説明である。また、継承(親の性質を引き継ぐこと)そのものや、カプセル化(データを外から直接触らせず、決まったメソッド経由で扱わせること)の説明と入れ替えた選択肢にも注意する。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • オーバーロードとの取り違えが定番。