OC中子類和父類的轉化問題

Person爲父類

Student爲子類

//將父類轉化爲子類

    Person * person = [[Person alloc] init];

    Student *stu = (Student *)person;//不可取的,但是不會報錯和警告

    
    //只是將stu指向了父類的person區,而person分配的空間以父類Person大小的空間分配;

    //所以在peoson中並沒有存放student自己的屬性和方法,所以stu無法使用自己的方法和屬性


 將子類轉化爲父類

要想將oc中的子類轉化爲父類,應該將子類所特有的實例變量和方法去掉  (這樣內存的大小分配就和父類一樣) 然後轉化爲父類,父類就可以使用。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章