黑马程序员—OC学习笔记—继承与super关键字运用

来源:互联网 发布:hadoop java 统计订单 编辑:程序博客网 时间:2024/06/05 14:27

———–Java培训、Android培训、IOS培训、.Net培训、期待与您交流!————
本节是个人学习过程中的笔记,供初学者一起学习,欢迎大家批评指正,留言参与讨论,谢谢。
本节内容,继承与super关键字运用,代码如下:

//利用植物大战僵尸里面的僵尸类来学习继承和super关键字用法#import <Foundation/Foundation.h>@interface Zombie : NSObject{    int _speed;}- (void)walk;+ (void)walk;@end@implementation Zombie+ (void)walk{    NSLog(@"父类Zombie +walk");}- (void)walk{    NSLog(@"父类Zombie -walk");}@end@interface JumpZombie : Zombie{    //int _speed;  //error: duplicate member '_speed'}- (void)setSpeed: (int)speed;- (int)speed;- (void)walk;+ (void)walk;@end@implementation JumpZombie- (void)setSpeed: (int)speed{    _speed = speed;}- (int)speed{ return _speed;}- (void)walk{    [super walk];//如果父类没有对象方法walk,只有类方法walk,这里会报错,因为此处只能去找对象方法    NSLog(@"子类JumpZombie -walk");}+ (void)walk{    [super walk];//这里也只能去找类方法,如果找对象方法,好吧,已经犯规咯    NSLog(@"子类Zombie +walk");}@endvoid test(){    //测试,继承中方法的继承机制,和super的使用规范    JumpZombie* jz = [JumpZombie new];    [jz walk];    [JumpZombie walk];    //测试 对成员变量的继承情况    [jz setSpeed: 100];    NSLog(@"子类定义的_speed读写方法,输出_speed值:%d",[jz speed]);}int main(){    test();    return 0;}

程序运行结果如下:
这里写图片描述

0 0
原创粉丝点击