==[[SJC-P 共変戻り値]]==
===共変戻り値(covariant return types)===
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.5
*以前のバージョンでは許されていなかった
*オーバーライドの制限をゆるくする
以前のバージョンでオーバーライドをする場合、戻り値を含めシグネチャが完全に一致している必要があったが、Java5からは、戻り値については、オーバーライドされるメソッドの戻り値のサブクラスを戻すことが可能になった。以前のバージョンでオーバーライドをする場合、戻り値を含めシグネチャが完全に一致している必要があったが、[[Java5]]からは、戻り値については、オーバーライドされるメソッドの戻り値のサブクラスを戻すことが可能になった。
package returntype;
public class ConvariantReturnTypeTest1 Convariant[[R]]eturnTypeTest1 {
public static void main(String[] args) {
ConvariantReturnTypeTest1 Convariant[[R]]eturnTypeTest1 me = new ConvariantReturnTypeTest1Convariant[[R]]eturnTypeTest1(); me.testReturnTypetest[[R]]eturnType();
}
public void testReturnTypetest[[R]]eturnType() {
try {
Base b1 = new Base(999);
{{amazon|4822282775}}
----
{{include_html [[banner_html]], "!SJC-P"}}