Overrideされる場合のルール
- 同じパラメータ、同じReturn Type
- アクセスレベル(PublicならOverrideされる関数はPublic. Private, Protectedはダメ)
- final, staticはダメ
- コンストラクタもダメ
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)); } }