美文网首页
GeekBand Objective-C 继承、多态

GeekBand Objective-C 继承、多态

作者: 东忙忙西茫茫 | 来源:发表于2016-05-15 00:26 被阅读0次

面对对象的三个基本特征:
封装 encapsulation
继承 inheritance
多态 polymorphism

1.继承

含义:复用父类的成员。类型抽象:将子类当作父类来使用(is-a)。

OC中只支持单继承,而且必需要有一个父类。如果没有指定的父类,可以指定NSObject(所有类的基类)。

继承的成员:

实例变量

shape->_data = 20; //子类调用父类的实例变量用"->"

属性
实例方法
类方法

技巧:默认实例变量只能在实现类内中访问,但如果外部要访问的话。可在接口头文件中将实例变量指定为@public。

@interface Shape : NSObject {
        @public int _data;
}

2.多态 (运行时多态)

override 重写父类的方法,重写就是跟父类方法名参数名相同的方法。
OC本身不支持方法的重载。

super 代表基类,子类中调用基类的方法。
self 代表当前对象,具有多态性。

//父类的引用指向子类的对象
Shape *rect = [[Rectangle alloc] init];
void process(Shape* shape){
      shape.no++;
      [shape draw]; //多态调用
}

子类自动继承父类的初始化器,也可重写父类的初始化器,但必须手动调用父类的初始化器。
子类继承父类的析构器,也可重写父类的析构器方法,子类的析构器执行完,会调用父类的析构器(后置调用)。析构器是具有多态性的。

注意:避免在父类的init和delloc方法中调用子类重写的方法。父类执行init方法的时候,调用子类重写的方法,而这个方法用到的属性还没来得及初始化。父类执行delloc方法的时候调用子类重写的方法,这时子类已经被销毁了。

相关文章

  • GeekBand Objective-C 继承、多态

    面对对象的三个基本特征:封装 encapsulation继承 inheritance多态 polymorphism...

  • 六、继承与多态 @GeekBand

    面向对象特征 封装 继承 单继承 继承了实例变量、属性、实例方法、类方法 所有类的根类:NSObject 成员复用...

  • GeekBand-OC继承与多态

    面向对象三大特性:封装、继承、多态面向对象三大特性 继承 在OC中,继承为单继承。即每个类只能有一个父类,子类自动...

  • iOS开发初学者学习路线

    基础C语言基本语法、Objective-C基本语法面向对象特性(类、对象、继承、多态、动态类型、动态绑定)协议(P...

  • Objective-C的特点

    Objective-C的特点1.Objective-C和Java C++一样,有封装,继承,多态,重用。但是它不像...

  • 2020-05-16--Java--day09【继承、super

    1.继承 三大特征:封装,继承,多态 继承是多态的前提,没有继承就没有多态 继承的主要解决的问题就是:共性抽取 在...

  • Objective-C多态:动态类型识别+动态绑定+动态加载

    Objective-C多态:动态类型识别+动态绑定+动态加载 内容: 一、Objective-C多态 1.概念:相...

  • Lession08继承和多态

    继承 多态 继承练习

  • 继承、抽象类与接口

    第1节 继承 继承的概述 面向对象的三大特征:封装性、继承性、多态性。继承是多态的前提,如果没有继承,就没有多态。...

  • 周记二

    周一:今天学了继承和多态,继承有public继承、protected继承、private继承,多态和虚函数一对,抽...

网友评论

      本文标题:GeekBand Objective-C 继承、多态

      本文链接:https://www.haomeiwen.com/subject/pplvrttx.html