Java 5.0は、共変量のリターンタイプのサポートを追加します。つまり、サブクラスがオーバーライド(つまりオーバーライド)ベースクラスメソッドを追加すると、返されたタイプは、ベースクラスメソッドリターンタイプのサブクラスになります。共変量のリターンタイプにより、より具体的なタイプを返すことができます。
サンプルプログラムは次のとおりです。
コードコピーは次のとおりです。
java.io.bytearrayinputStreamをインポートします。
java.io.inputStreamをインポートします。
クラスベース
{
//サブクラス派生はこの方法をオーバーライドし、return型をinputstreamのサブクラスに設定します
public inputstream getInput()
{
return system.in;
}
}
パブリッククラスは、ベースを拡張します
{
@オーバーライド
public bytearrayinputStream getInput()
{
新しいbytearrayinputStream(new Byte [1024])を返します。
}
public static void main(string [] args)
{
derive d = new derive();
System.out.println(d.getInput()。getClass());
}
}
/*プログラム出力:
クラスjava.io.bytearrayinputStream
*/