0

スーパークラスがサブクラスのインスタンスを格納できることは知っていますが、

例えば:

public class Subclass
{
   private int color;

   public Subclass()
   {
     color = "red";
   }
}

Superclass v = new Subclass();

スーパークラスはサブクラスのメソッド、変数などを認識していませんが、キャストするとこれらにアクセスできます。

それはどのように機能しますか?

例:

Vechicle v = new Car();
Car c = (Car) v;
Consoel.WriteLine(c.color);


Output:
red
4

1 に答える 1

1

あなたが指定したほど単純ではありません。

コンストラクターで色が変更された場合Car、赤とは異なります。

さらに、仮想メソッドの概念があります。

以下は継承ではなくキャストです。継承 msdn

Car c = (Car) v;

継承されたすべての型は基本型に型キャストできますが、必須ではありません。さらに、ユーザー定義の変換、およびヘルパー クラスを使用した変換が存在する可能性があります。
キャストと型変換 - MSDN

于 2013-11-02T04:43:09.610 に答える