五:面向对象的三大特性:封装、继承、多态

一、封装

封装是屏蔽内部实现的细节, 仅仅对外提供共有的方法/接口

好处: 保证数据的安全性,将变化隔离

规范: 一般情况下不会对外直接暴露成员变量, 都会提供一些共有的方法进行赋值成员变量都需要封装起来

注:1、若一个类把自己的成员变量暴露给外部的时候,那么该类就失去对该成员变量的管理权,别人可以任意的修改你的成员变量。

      2、封装中经常使用@property(即setter和getter方法)

      3、在类的延展中对类进行分装,即:

          @interface NSObject ()

          @end

 

二、继承

继承就是子类获得父类的特性就是继承,被继承的这个类我们称之为父类/ 超类,继承了某个类的类我们称之为子类

格式:@interface 子类名称 : 父类名称

     @end

当B类继承A类, 那么B类就拥有A类所有的属性和方法(类方法/对象方法)

注意: 1、继承中的方法调用顺序, 如果自己有就调用自己的, 如果自己没有就调用父类的即:

     “方法的调用顺序, 先自己再父类, 如果父类中没有再爷爷类, 如果爷爷类再没有就找爷爷的爸爸类如果一直找到NSObject类都没有找到, 那么就会报错

         reason: ‘-[Person signalWithNumber:]: unrecognized selector sent to instance 0x1003043c0’

    2、在继承中方法可以重写, 但是属性(成员变量)不能重写

继承的条件:XXXX 是 XXX / 某某某 is a 某某某

继承的缺点是什么:耦合性太强(依赖性太强)

继承的优点是什么:提高代码的复用性,可以让类与类之间产生关系, 正是因为继承让类与类之间产生了关系所以才有了多态

方法重写:如果子类中有和父类中同名的方法, 那么我们称之为方法重写

使用场景:当从父类继承的某个方法不适合子类,可以在子类中重写父类的这个方法。

 

三、多态

多态就是某一类事物的多种形态

程序中的表现:父类指针指向子类对象

条件:1)有继承关系

     2)子类重写父类方法

   3)父类指针指向子类对象

优点:提高了代码的扩展性,复用性

注:如果父类指针指向子类对象, 需要调用子类特有的方法, 必须先强制类型转换为子类才能调用

 

转载于:https://www.cnblogs.com/hissia/p/5423689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值