OC引き継ぎ使用

1656 ワード

一、概要
継承(inherityance)は、対象言語に対してすべての特性を持つもので、継承によって、親の機能を持つ新しいタイプ、すなわち、親の機能をすべて継承しているものと定義されます.
二、なぜ引き継ぎを使うか
実際の開発では、プログラムにはしばしばいくつかのインターフェースと実装が非常に似ている種類が含まれていることを発見しました.彼らはクラス名以外に、他の多くのコードと行動は同じです.このように多くの重複コードを含むプログラムは、アプリケーション開発にとって失敗したアーキテクチャである.ですから、これらのインターフェースと機能が似ている場合には、継承を使うことで、大量のコードを節約し、後期のメンテナンスにも便利です.
三、継承の文法書式
@interface子類名称:父類名称
四、継承の作業メカニズム
1、方法スケジュール
コードがメッセージを送信する場合、OCの方法スケジュール機構は、現在のクラスで対応する方法を検索する.メッセージを受信したオブジェクトのクラスファイルに対応する方法が見つからない場合、そのオブジェクトのスーパークラスで検索されます.また、必要に応じてチェーンの各クラスで検索を繰り返し実行します.NSObjectクラスでも該当の方法が見つからないと、実行時にエラーが発生し、コンパイル時に警告情報が表示されます.
2、インスタンス変数
新しいクラスを作成するときは、そのオブジェクトはまず、インスタンス変数を彼のスーパークラスから引き継ぎ、自分自身のインスタンス変数を追加します.各方法の呼び出しは、selfというパラメータを得る.これは、受信メッセージのオブジェクトを指すポインタである.これらの方法は、selfパラメータを介して、それらが必要とする例示的な変数を探している.
五、書き換え方法
子类は父亲から継承する方法がありますが、时には父亲の方法が子类に合わない场合があります.子类は自分の同名の方法を书き、父亲の同名の方法を上書きすることができます.注意したいのは、書き換えのこの方法は親類で実行されると、元の方法を取り替えることになります.
ケース:
//      (.h  )
#import 
@interface Shape : NSObject
-(void)colorValue;
-(void)draw;
@end

//      (.m  )
 #import "Shape.h"
@implementation Shape
//         ,              
-(void)colorValue{
  return;
}
-(void)draw{
   NSLog(@"     ");
}
@end
//      (.h  )
#import "Shape.h"
@interface Circle : Shape
@end

//      (.m  )
 #import "Circle.h"
@implementation Circle
//          ,           
-(void)colorValue{
  NSLog(@"       ");
}
 //  Circle    Shape draw  ,       
-(void)draw{
   NSLog(@"     ");
}
@end
OC継承に関する語彙については、ジャンプしてください.https://www.jianshu.com/p/6145d5981da8表示します.