Javaの共変リターンタイプとは何ですか?
一般に、オーバーライドでは、スーパークラスとサブクラスのメソッドは同じ名前とパラメーターを持ちます。ただし、型を返す場合、サブクラスのメソッドは、スーパークラスのメソッドの戻り型のサブタイプを返すことができます。
例
次の例を見ると、スーパークラスには demoMethod()という名前のメソッドがあります タイプリストの値を返します。このメソッドをオーバーライドすると、サブクラスのメソッドはリストタイプの値を返すことができます。 (スーパークラスにあります)または、リストのサブタイプを返すこともできます (スーパークラスのメソッドの戻り型)ArrayList、Stack、Vectorなど
このシナリオでは、サブクラスメソッドは、スーパークラスの戻り型のサブタイプであるArrayList、つまりListを返します。このサブタイプ(ArrayList)はとして知られています 共変タイプ 。
例
class Test{ int data =100; Test demoMethod(){ return this; } } public class Sample extends Test{ int data = 1000; Sample demoMethod(){ return this; } public static void main(String args[]){ Sample sam = new Sample(); System.out.println(sam.demoMethod().data); } }
出力
1000
-
C言語の主要なデータ型は何ですか?
「C」コンパイラは、4つの基本的なデータ型をサポートしています。それらは次のとおりです- 整数 キャラクター 浮動小数点 倍精度浮動小数点 プライマリデータ型 整数データ型 整数データ型は、整数と文字を格納するために使用されます。 さらに2つのタイプに分類されます- 整数データ型。 文字データ型。 整数データ型 このデータ型は、整数を格納するために使用されます。 整数ストレージは、符号付き形式と符号なし形式の両方で、short int、int、およびlongintです。 整数データ型 タイプ サイズ(バイト単位) 範囲 制御文字列 short in(ま
-
Javaのpaint()メソッドとrepaint()メソッドの違いは何ですか?
Paint()とRepaint() paint(): このメソッドは、このコンポーネントをペイントするための命令を保持します。 Java Swingでは、paintが paintBorder()を呼び出すときに、paint()メソッドの代わりにpaintComponent()メソッドを変更できます。 paintComponent() およびpaintChildren() メソッド。このメソッドを直接呼び出すことはできません。代わりに、 repaint()を呼び出すことができます。 。 repaint() :このメソッドはオーバーライドできません。 paint()を制御します サイ