运行时多态

运行时多态

多态:子类在父类统一行为接口下,表现不同的实现方式

对比重写与重载

子类重写父类同名同参数方法:子类只可重写父类方法

方法名相同,参数不同:OC不支持方法的重载

在子类的代码中,可以使用super来调用基类的实现

self具有多态性,可指向不同子类

super没有多态性,仅指向当前父类

初始化器

子类自动继承基类的初始化器

子类也可以重写基类初始化器,此时子类初始化器必须先调用基类的一个初始化器(手工调用)

析构器

子类可以选择重写继承基类析构器,或者重写基类析构器

子类析构器执行完毕后,会自动调用基类析构器(后置调用,且不支持手工调用)

子类析构器自动具有多态性

尽量避免在父类init和dealloc中调用子类重写的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是接口? 接口是行为的抽象,接口的目的主要为不同的类提供通用的处理服务,从而实现系统的可维护性与可扩展性。 虚...
    wuzhiguo阅读 3,222评论 0 0
  • 本章将会介绍 存储属性的初始赋值自定义构造过程默认构造器值类型的构造器代理类的继承和构造过程可失败构造器必要构造器...
    寒桥阅读 4,123评论 0 0
  • 官方文档 初始化 Initialization是为准备使用类,结构体或者枚举实例的一个过程。这个过程涉及了在实例里...
    hrscy阅读 4,806评论 0 1
  • 多态(1)静态多态与动态多态 什么是多态 从字面上理解就是多种形态的意思。而多态一词最初源自希腊语,其含义便是“多...
    kingZXY2009阅读 6,861评论 0 2
  • 下标脚本 下标脚本 可以定义在类、结构体和枚举这些目标中,可以认为是访问集合(collection),列表(li...
    cht005288阅读 3,237评论 0 0