父類對象和子類對象之間可以相互轉換嗎

可以相互轉換。但是若父類對象想轉換爲子類對象,父類對象一定是用子類對象初始化的。   那麼父類對象如何用子類對象初始化呢? 假設父類爲A,子類爲B,那麼用子類初始化代碼爲: A a=new B() 這就相當於我們用父類的句柄指向了子類的空間,如下圖所示:    此時我們若將a強制轉換爲子類對象: B b=(B)a;//相當於B a=new B()  相當於用子類句柄指向了子類對象空間,因此只是換了
相關文章
相關標籤/搜索