なぜアノテーション@overrideを書かなければいけないのか
おはようございます。先日髭の脱毛を始めました。Uです。
髭の脱毛については別の記事で書くとします。
今回はJavaの開発で使用する@overrideの必要性について。
結論から言うと@override書くの必須です。
次のサンプルコードは@overrideを書いていないサンプルコードです。
引数の文字を大文字出力するメソッドを持ったHoneyBoyクラス。
HoneyBoyクラスを継承し、引数の文字を小文字出力するメソッドを持ったHoneyGirlクラス。
この2つのクラスを以下のように実行します。
さて実行結果は下記の選択肢のうちどれでしょうか。
A.Hey!Boy and Girls!!
B.hey!boy and girls!!
C.HEY!BOY AND GIRLS!!
はい、答えはCです。
今回出力されたメソッドはHoneyBoyクラスのprintOutメソッドなんですね。
小文字で出力されるHoneyGirlクラスのメソッドを呼ぼうとしたつもりで書いたのになぜこうなったのか。
原因:問題個所はHoneyGirlクラスのprintOutメソッドの引数がStringBuillderで書かれていて親クラスの引数Stringの型と異なっているため今回の問題が起きます。
StringBuillderの箇所をStringに直すと小文字で出力できます。
さて、こういった問題を起こさないために@overrideを書きます。
エラーを教えてくれるわけですね。
今回の記事はこちらの本の内容を参考に書きました。
Java8に関することだけでなくJavaの初球から中級に進みたい方向けの技術が豊富に書いていておすすめします。
Javaでの開発が得意です。弊社ホームページもぜひご覧ください。
http://www.honeycomware.jp/