1

ボブが人間の男性であるとします

だから私は人間と男性の両方を受け継いでいます。

ここで、人間を継承として実装したいとします

@interface BobLike : human 

そして、男性のプロトコルを作成したい

@protocol male

そう、

私たちは得ました

@interface BobLike : human <male>

さて、これまでのところとても良いです。男性インターフェースをプロトコルに入れることで、クラスのような動作を作成できます。何かのようなもの

@protocol male
-(void) growBeard;
-(void) playVideoGames;
@end

@interface human (male) <male>

@end

ここで、growBeard と playVideogames の実装は、BobLike で楽しむことができます

後者の場合、男性を継承したい場合はどうなりますか。normalMale という別の「オブジェクトのようなクラス」を作成したいとします。

normalMale の方がヒゲが長いので、オーバーライドします。

@protocol normalMale :male
//-(void) growBeard; //No need to be declared because we already declare that as in male protocol
//-(void) playVideoGames; //No need to be declared because we already declare that as in male protocol
@end

@interface NSObject (singleton) <male>

@end
@end

@interface human (normalMale) <normalMale>

@end

次に、-(void) growBeard; を再実装しました。-(void) playVideoGames;

いつものように。しかし、どちらが呼ばれますか?ひげを生やしたり、ビデオゲームをプレイしたりしますか?

4

3 に答える 3