OC_多态



封装:

    把具体的对象封装成抽象的类,隐藏内部实现,对象的属性和实现细节,仅对外公开接口,提高代码的安全性,实现模块化调用。为元素公有私有就是为了隐藏实现细节,只露一个干净的接口,让业务逻辑被实现细节所污染,就是所谓的封装

 

 

继承:

    拥有父类的所有非私有的成员变量、属性和方法就是is-a的关系

    子类可以扩展父类没有的属性和方法,是一种强耦合的关系,就是父类变了,子类就不得不变

 

 

 

多态:

     实现同一个接口,使用不同的实例而执行不同的操作。就是不同对象响应同一方法时做出的不同反应,是一种现象。

 

类的多态即父类的指针指向子类的对象,所以没有继承就没有多态

 

使用多态时,会动态检测,以调用真实的对象方法

 

父类的指针指向子类的对象的代码实现:

    有Student类和Student的子类为SubStudent

实现为:

    Student *stu = [SubStudent new];

 

 

 

多态是不同类型的对象使用同一方法的不同实现,没有继承就没有多态,因此,多态就是发生在父类与子类之间的。父类与子类对同一方法的不同实现就是多态

 

父类可以利用多态调用子类的方法,只需使用方法选择器就可以调用子类的方法,也可以直接调用子类方法,但是如果是子类特有的方法就不能调用,因为编译时会出现错误,其实运行程序是不会报错的,是可以运行的(所以父类可以直接调用与父类重名的方法)。但是父类是没办法使用子类的属性或者成员变量的。

 

对于属性,可以使用方法选择器调用子类的属性方法,但是无法对其进行操作,对于setter方法更是如此,直接crachgetter方法获取为空,因为根本没法对其赋值。

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值