オーバーライド時の共変戻り値型について

オーバーライド時のメソッドの戻り値型は、戻り値型が参照型(要するにクラス)であれば、スーパークラスのメソッドが宣言している戻り値型のサブタイプを戻り値型として宣言可能。
この形式の戻り値型を共変戻り値型と呼ぶ。

public interface Sample {
	public Object method();
}
class SampleImpl implements Sample {
	public String method() {
		return "A";
	}
}

StringはObjectのサブタイプなので、こんなコードがOKということであります。
なお共変戻り値はJDK5.0よりサポート。それ以前だとコンパイルエラーになる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です