Java 基本・派生クラス間の関数オーバーロード

基本クラスとその派生クラスに同じ名前の関数がある場合は、
引数のデータ型や引数の個数が
1つでも違っていれば呼び分ける事ができます。

同じ関数で複数定義するので、
関数の多重定義(オーバーロード)と言います。

/********** 基本クラス **********/
class kihon {

      public void show(int data1) {
            System.out.printf("data1 = %d\n", data1);
      }

}

/********** 派生クラス **********/
class hasei extends kihon {

      public void show(int data1, int data2) {
            System.out.printf("data1 = %d\n", data1);
            System.out.printf("data2 = %d\n", data2);
   }

}

public class Cmain {

      public static void main(String[] args) {

            hasei b = new hasei();
            b.show(10);            // 基本クラスのshow関数が呼ばれる
            b.show(10, 20);        // 派生クラスのshow関数が呼ばれる
      }
}

このプログラムには、
基本クラスと派生クラスにshow関数があります。

しかし、引数の個数が異なるので、
適切に呼び分ける事ができています。

タイトルとURLをコピーしました