2007年10月15日月曜日

オーバーライド

スーパークラスのメソッドと同じ名前のメソッドをサブクラスで定義することをオーバーライドといいます。

class Super {
    void func() throws IOException {
        System.out.println("Super");
    }
}
class Sub extends Super {
    @Override
    void func() {
        System.out.println("Sub");
    }
}

<ルール>
・ 引数リスト、戻り値型は変更不可。
・ アクセスレベルを緩く出来るが厳しくは出来ない。
・ 新たな例外や、上位クラスの例外を throw できない。
・ 例外の数を減らしたり、下位クラスの例外を throw することは出来る。
・ final メソッドはオーバーライドできない。

0 件のコメント: