Java

javaのオーバーライドの実用例~サーブレット開発のdogetメソッド~

javaのオーバーライドの実用性

javaのオーバーライドってよく入門書で説明されているけど実用的な例がなくて

いったい何の役に立ってるの?

って人向けに説明します。

  • クラスの継承がわかっている人
  • オーバーライドを知っている人
  • サーブレット開発を知っている人

向けに前提に話を進めます。

※知らない人はこちらに参考リンクがあります

オーバーライドとは?

オーバーライドについておさらいです
(既に知っている人向け)

オーバーライドとは直訳すると

『上書き』

になります。

言葉の通りで

『クラスの継承先に対してメソッドの上書きができる』

というのが、オーバーライドです。


例えばクラスAにdisplayメソッドが定義されていたとします。

クラスAに対してクラスBを継承します。

クラスBでdisplayメソッドを再度、定義することができます。

このような状態を

『クラスAのメソッドを継承先のクラスBでオーバーライドした』

と言います。

何の役に立つのか?

上記の説明だと、

これ何の役に立つの?

と思うかもしれません。

そう感じた人は鋭いと思います。

そう!上記の例は全くの無意味です。

ではどんなところで役に立つのか?

javaの勉強で

一番最初にオーバーライドが活用されている事例は

サーブレットでdogetメソッドを定義する時

だと私は思っています。
(他にあったら教えてください。)

dogetメソッド

サーブレットのdogetメソッドとはどんなヤツかというと

サーブレット開発する際には

サーブレットクラスというものが必要です

そのサーブレットクラスは

HttpServletクラスを継承する

というお約束になっています。

ブラウザからGETリクエストが来た場合の処理は継承先のサーブレットクラスでdogetメソッドをオーバーライドし、dogetメソッド内に書く。

というお約束になっています。

これがjava開発者で一番最初に出てくるオーバーライドの例だと私は思っています。

要は何をしているのかというと

開発者側に勝手にメソッドを定義させないルール作り

というのがオーバーライドの1つの役割だと思います。

『GETリクエストの時は必ずdogetメソッドを定義してくださいね。』

という、

マニュアルをつくるのではなく、『オーバーライド』という形で必ず定義しないと動かない仕組みを作ることにより、プログラマーの品質や生産性を高めているのです。

初心者脱出への鍵

javaは今回説明したオーバーライドなど

java(というかオブジェクト指向)には

『理解はしたけど、どのように活用できるのか不明』

という技術がたくさんあります。

活用できないような技術を覚えても忘れるだけです。

なので、

どのように役立つのか調べて、

それでも役立つ事例がないのであれば一旦諦める

ことをお勧めします。

後で使うときになったらまた思い出せば良いのですから。

関連記事