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

2021-07-02 02:41:22 字數 367 閱讀 2393

person為父類

student為子類

//將父類轉化為子類

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

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

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

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

將子類轉化為父類

要想將oc中的子類轉化為父類,應該將子類所特有的例項變數和方法去掉  (這樣記憶體的大小分配就和父類一樣) 然後轉化為父類,父類就可以使用。

C 中子類和父類之間的相互轉化

c 父類和子類物件指標之間的轉換,有示例 c 父類和子類物件指標之間的轉換 由子類向父類轉換很簡單,用預設轉換.例如 cwnd pwnd cwnd childview 由父類向子類,用dynamic cast.使用dynamic cast是有限制的.例如對如下語句 cpoint3d p1 dynam...

java中子類繼承父類程式執行順序問題

public class fathertest public fathertest string name static public void speak 加入乙個main程式後 public static void main string args 結果 可以很明顯的看出來執行順序 靜態 塊 主...

java中子類重寫父類方法要注意的問題

子類不能重寫父類的靜態方法,私有方法。即使你看到子類中存在貌似是重寫的父類的靜態方法或者私有方法,編譯是沒有問題的,但那其實是你重新又定義的方法,不是重寫。具體有關重寫父類方法的規則如下 重寫規則之一 重寫方法不能比被重寫方法限制有更嚴格的訪問級別。但是可以更廣泛,比如父類方法是包訪問許可權,子類的...