引数が違うが同じような動作をする場合、に限ってメソッドをオーバーロードすべし。静的か動的かよく忘れる……

class A{
}
class B extends A{
}
class C {
    test(A x){
        System.out.println("A");
    }
    test(B x){
        System.out.println("B");
    }
    public static void main(String[] args){
        // 実体がBのインスタンスであろうと
        // test(A x)が呼ばれる
        A x = new B();
        new C().test(x);
    }
}

参考: Java用語集 オーバーロード

tags: Java zurazure

Posted by NI-Lab. (@nilab)