oc 的第四天

                    繼承與多態

1,關鍵字的使用self和super

       1.self 在對象方法中,指代的就是調用當前方法的那個對象
       比如在.M文件中它可以代表當前對象去調用另一個方法名
       [self     方法名 ];
       2.self在類方法中就只帶當前的類
       [self    方法名];
      3.修飾實際變量
      把。h文件中不用下劃線這時可以用self 
      self ->age=age
   self可以理解爲自己
2.繼承

        動物 吃 ,跑      父類
    狗 /吃  跑/  看家     子類
    毛/吃   跑/   上樹    子類

1,就是父類中的方法子類它也有並且可以調用
子類也必須引入父類的
在main函數中必須引出頭文件

2,怎麼調用?
首先要創建一個對象
[對象  調用方法];
但是調用時候不同的類都要先創建對象然後才能調用
可以調用父類的也可以調用自己的

3,子類繼承父類的方法時進行重現
就是用super調用父類方法時然後重新賦值
比如調用父類吃的方法
[super eat];
然後打印它吃什麼,就會在main函數中打印出狗會吃什麼而不是繼承動物吃的東西了

4,子類沒有的東西他會繼承父類一級一級的往上面找一直去找到object 找不到就報錯了

3實例變量的修飾符

public 共有的 在任何地方都能訪問
protected 受保護的  默認類型只能在當前子類訪問 
private 私有的 只能在當前類使用只能在當前類訪問 子類也不可以去訪問
description以%@輸出實例對象
格式:-(nsstring)description{  
}

4多態
1,首先滿足多態的條件
   存在繼承關係的
   存在方法重寫
   父類指針指向子類 
多態的特點就是不同對象能夠響應相同的方法能力
就是子類都可以響應父類的方法

2, 在.h和.m文件中不變
   在main函數中
依然是創建一個對象但是  [要指向的子類   new];
  [指針    方法];
如果要掉用另一個子類
 父類的指針 =[要指向的子類  new];
  [指針    方法];
3、父類能調用子類不用重寫的方法
    就是強轉一下
    [[子類* ]父類的指針   另一個子類的方法]

5,類的本質
類的本質也是對象,類對象
  類對象的獲取
創建一個類calss是所有類的基類
calss   指針=[ 類  calss]


  


















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