ボブが人間の男性であるとします
だから私は人間と男性の両方を受け継いでいます。
ここで、人間を継承として実装したいとします
@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;
いつものように。しかし、どちらが呼ばれますか?ひげを生やしたり、ビデオゲームをプレイしたりしますか?