私はアップキャストとダウンキャストのコンセプトをJavaで行いました。これは拡大と縮小とも呼ばれます。アップキャスティングはどのようにJavaで動作しますか?
- UpCasting(拡大)は、派生クラスから基底クラスに自動的に行われます。それはis-a関係を有する場合である。
- ランタイムチェックのためにダウンキャスティングを明示的に実行する必要があります。
私は概念とすべてを得ました。しかし、この場合、どのように動作していますか?
public class ObjPair {
Object first;
Object second;
public ObjPair(Object first, Object second) {
this.first = first;
this.second = second;
}
public Object getFirst() {
return first;
}
public Object getSecond() {
return second;
}
public static void main(String[] args) {
ObjPair objPair = new ObjPair("A",2.2); // Goes widning conversion
System.out.println(objPair.getFirst());
System.out.println(objPair.getSecond());
}
}
ObjPair objPair =新しいObjPair( "A"、2.2)。これは、アップキャストを通過している
- 、文字列オブジェクトへとダブルオブジェクトにし、状態がobjPairでストアを取得します。すばらしいです..!!!さて、私はobjPair.getFirst()とobjPair.getSecond()を行う際
。それは私にAと2.2を返します。
- 文字列と倍精度をどのように覚えているのですか?拡大/上書きは、スーパークラスの状態とメソッドを覚えているはずです。
- サブクラスの型と値はどのようにアクセスできますか?
あなたの 'ObjPair'では、それは文字列とdoubleとして格納されます。 – Nathan
アップキャスト後にObjectとして保存されていますか?それがアップキャストが起こっているところです。 – Ritesh
また、Objectクラスにはprintln()が使用するtoString()メソッドがあります。 StringとDouble(autoboxからdouble)は、toString()をオーバーライドして値を正しく出力します。 –