黑马程序员——OC三大特性-6:继承

————————java培训、Andoroid培训、IOS培训、.Net培训、期待与您交流!————————

面向对象3大特性:封装、继承、多态

僵尸,跳跃僵尸类的简单设计

#import <Foundation/Foundation.h>

@interface Score : NSObject
{
    /*
     成员变量的命名规范:一定要以下划线_开头
     作用:让成员变量和get方法的名称区分开
          可以跟局部变量区分开
     */
    int _cScore;//c语言成绩
    int _ocScore;//OC成绩
    int _totalScore;//总分
    int _averageScore;//平均分
}
- (void)setCScore:(int)cScore;
- (void)setOCScore:(int)ocScore;

- (int)cScore;
- (int)ocScore;
- (int)totalScore;
- (int)averageScore;
@end

@implementation Score
- (void)setCScore:(int)cScore
{
    _cScore=cScore;
    _totalScore=_ocScore+_cScore;
    _averageScore=_totalScore/2;
}

- (int)cScore
{
    return _cScore;
}

- (void)setOCScore:(int)ocScore
{
    _ocScore=ocScore;
    _totalScore=_ocScore+_cScore;
    _averageScore=_totalScore/2;
}
- (int)ocScore
{
    return _ocSc ore;
}

- (int)totalScore
{
    return _totalScore;
}

- (int)averageScore
{
    return _averageScore;
}

@end
int main()
{
    Score *s=[Score new];
    [s setCScore:100];
    [s setOCScore:80];
    NSLog(@"总分=%d,平均分=%d",[s totalScore],[s averageScore]);
    return 1;
}


对象方法和类方法区别

对象方法:以-开头

      只能由对象来调用

      对象方法中能访问当前对象的成员变量

 

类方法:以+开头

     只能有类名来调用

     类方法中不能访问成员变量

 

类方法的好处和使用场合

不依赖于对象,执行效率高

能用类方法尽量使用类名

当方法内部不实用到成员变量时,就可以用类方法


self

self处在对象方法中就调用当前对象的对方方法

self处在类方法中就调用当前类的对方方法


继承

继承的好处

1.抽取重复代码

2.建立了类之间的关系

3.子类可以拥有父类所有成员变量和方法

 

不允许父类和子类有相同的成员变量

重写:子类重新实现父类的某个方法,覆盖父类以前的做法

     父类必须声明在子类的前面

     调用某个对象方法,优先到当前对象中找,若果找不到,则去父类中找

 

坏处:耦合性太强

 

继承的使用场合:

当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中

当A类拥有B类的部分属性和方法时,可以考虑让B类继承A类

 

继承:xx是xx

组合:xx拥有xx

 

super的作用

1.直接调用父类中的某个方法

2.super处在对象方法中,那么就调用父类的对象方法

  super处在类方法中,就会调用父类的类方法

 

使用场合:

子类重写父类的方法,还想运用父类的一些行为




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值