メソッドのオーバーライド

BASE Disp() method
OverRide Disp() method
 -- Press any key to exit (Input "c" to continue) --
継承した Class のメソッドを override(オーバーライド)します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして OverRide.java の名前で保存して下さい。
    //★ Class の OverRide  前田 稔
    class  OverRide extends BASE
    {
        // Main()
        public static void main(String args[])
        {   new OverRide();
        }
    
        // Constructor
        public OverRide()
        {
            super.Disp();
            this.Disp();
        }
    
        // Disp() の定義
        @Override public void Disp()
        {
            System.out.println("OverRide Disp() method");
        }
    }
    
    //☆基本 Class の定義
    class BASE
    {
        void Disp()
        {
            System.out.println("BASE Disp() method");
        }
    }
    
  2. ソースプログラムをコンパイルして class オブジェクトを実行して下さい。
    コンパイルの詳細は Java を動かす を参照して下さい。
    ページ先頭の画面が表示されたら完成です。

プログラムの説明

  1. 新しく作るクラスを導出クラス、継承元のクラスを基本クラスと言います。
    基本クラスをスーパークラス、導出クラス(派生クラス)をサブクラスと呼ぶこともあります。
    継承した Class のメソッドを override(オーバーライド)してみましょう。
    言葉は似ていますが、オーバーロードとは全く別のものです。
    スーパークラスを継承してサブクラスを作ることを「サブクラス化」と呼び、Java では良く使われます。
  2. 最初に継承される基本クラス(スーパークラス)から説明します。
    class BASE はメッセージを表示するメソッド Disp() が定義されているだけです。
        //☆基本 Class の定義
        class BASE
        {
            void Disp()
            {
                System.out.println("BASE Disp() method");
            }
        }
        
  3. BASE Class を継承する OverRide Class です。
    extends で BASE Class を継承します。
    Main() では OverRide Class をインスタンス化するだけです。
        class  OverRide extends BASE
        {
            // Main()
            public static void main(String args[])
            {   new OverRide();
            }
        
  4. Constructor から super.Disp() で継承元(スーパークラス)の Disp() メソッドを呼び出します。
    Java では継承できるクラスは一個だけですから super キーワードを使います。
    次に this.Disp() でオーバーライドした Disp() メソッドを呼び出します。
        // Constructor
        public OverRide()
        {
            super.Disp();
            this.Disp();
        }
        
  5. オーバーライドする Disp() メソッドの定義です。
    スーパークラスの Disp() メソッドと同じように記述します。
    @Override はオーバーライドメソッドであることの宣言で、無くてもかまいません。
    @Override を指定すると、名前やパラメータに間違いがあると、チェックしてくれます。
        // Disp() の定義
        @Override public void Disp()
        //public void Disp()
        {
            System.out.println("OverRide Disp() method");
        }
        

超初心者のプログラム入門(Java2)