基本クラスとその派生クラスに同じ名前の関数がある場合は、
引数のデータ型や引数の個数が
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関数があります。
しかし、引数の個数が異なるので、
適切に呼び分ける事ができています。