美人すぎない化粧品販売員がアプリ開発を目指す

Javaの構文、オブジェクト指向、APIなど、プログラミング初心者の私がアプリ開発までに理解したことをまとめたブログ

継承時のメソッドの上書き〜オーバーライド〜

オーバーライド

 

 もし継承されたクラス(子クラス)で親クラスから自動で継承されているコード(自動なので記述しなくても良いコード)を

そのまま使うのではなく子クラスの場合だけ変更したい時は?

 

                ⇩

 

  子クラス側で変えたいメソッドを再度定義する(メソッドの上書きをする)

 

 

ex.親クラスで既に定義されているrun( )メソッドの中身を「逃げる」→「撤退する」に変更する

 

     public class SuperHero extends Hero{

         public void fly{.....

                       }             //親クラスから+αで追加したいメソッド

  

   public void run( ){

                   System out println("撤退した");  //子クラス側でメソッドの中身を再定義

     }

           }

 

この子クラス側でメソッドの中身を上書き変更することを「オーバーライド」という

 

 

〈オーバーライドかどうか見分けるためのルール〉

 

親クラスに同じメンバがなければ、そのメンバは「追加」になる

親クラスに同じメンバがあれば、そのメンバは「上書き変更」される(オーバーライド)

 

 

ただし、メソッド宣言にfinalがついている→オーバーライドできない

     (クラス自体の継承は許可 finalがついているメソッドのみ)

    

     クラス宣言にfinalがついている→継承自体できない

      ex. public final class Main{....