-3
class B{
// Base class
}

class D : B{
//Derived class from B
}

//create objects
B b1 = new B();
D d1 = new D();

//why the following is not right?
D d2 = (D) b1;

// 以下は正しいでしょうか? B b1 = d1;

それでは、なぜ次のように動作しますか:

class Test
{
    static void Main()
    {
        double x = 1234.7;
        int a;
        a = (int)x;  // cast double to int
        System.Console.WriteLine(a);
    }
}

さらに、基本クラスのオブジェクトを派生クラスのオブジェクトにキャストできない場合、キャストの概念は何の役に立つのでしょうか。

4

3 に答える 3