2007年10月15日月曜日

final クラスと abstract クラス

final で修飾されたクラス
・継承(拡張)することができないのでサブクラスを作成できない。
・したがってどのメソッドもオーバーライドできない。

String クラスなどは final クラスです。

abstract クラス(抽象クラス)

abstract で修飾されたクラス
・インスタンス化できない。
・継承されることを目的とする
・abstract メソッド(抽象メソッド)を含むクラスは必ず abstract クラス(抽象クラス)である必要がある。
・抽象クラスに非抽象メソッドを含めることはできる。

<サンプル>
public class Sample {
    public static void main(String[] args) {
        Super obj = new Sub();
        obj.func();
    }
}
abstract class Super {
    abstract void func();
}
class Sub extends Super {
    @Override
    void func() {}
}

0 件のコメント: