' P '

whatever I will forget

Java 関数のOverride

Overrideされる場合のルール

  1. 同じパラメータ、同じReturn Type
  2. アクセスレベル(PublicならOverrideされる関数はPublic. Private, Protectedはダメ)
  3. final, staticはダメ
  4. コンストラクタもダメ
class Test1 {
    public void print() {  //final,staticだったらコンパイルエラー
        System.out.println("test1");
    }
}
class Test2 extends Test1 {
    public void print() { //private, protectedだったらコンパイルエラー
        System.out.println("test2");
    }
}

class program {
    public static void main(String[] args) {
        Test2 t = new Test2();
        t.print();
    }
}

下記みたいなのもOK。

class Program {
    static double max(double a, double b) {
        if(a > b) {
            return a;
        }
        else {
            return b;
        }
    }
    static int max(int a, int b) {
        if(a > b) {
            return a;
        }
        else {
            return b;
        }
    }

    public static void main(String[] args) {        
        System.out.println(max(1, 2));
        System.out.println(max(1.23, 3.36));
    }

}