• 三大特性之多态


    //多态:多种形态 对象有多种形态

    //没有继承就没有多态,必须继承

    #import <Foundation/Foundation.h>

    //多态:父类的指针指向子类对象

    //调用一个对象方法会检测对象的真实形象

    //注意:

    //Cat *c=[Animal new]; 这样都允许,OC是弱语法

    //OC允许多继承吗

    //多态的好处:

    //如果函数/方法参数中使用的是父类类型,可以传入父类,子类对象

    void feed(Dog *dog){

        [dog eat];

    }

    void feed(Cat *cat){

        [cat eat];

    }

    //多态使用后

    void feed(Animal *a){

        [a eat];

    }

    //多态的局限性

    //父类类型的指针变量是不能来调用子类特有的方法,

    //如果必须强转为子类类型后,才能调用子类特有的方法

    //Animal *aa=[Dog new];

    //[aa run]; //警告,虽然Animal没有run方法,Dog有

    //,能运行,不要这样写,可以采用强制转换

    // Dog *d=(Dog*)a;  类型转换是转 给编译器看的

    //Dog *d=[Cat new]; 弱语法

    //[d eat];//猫吃东西

    //NSString *d=[Cat new];

  • 相关阅读:
    Java集合之LinkedHashMap
    ConcurrentHashMap原理分析
    Java集合之HashMap
    JAVA集合之ArrayList
    Python内建函数
    Vscode 安装Java Spring项目
    音频质量评估-2
    音频质量评估-1
    Python list 实现
    怎么测试大数据
  • 原文地址:https://www.cnblogs.com/imChay/p/5590351.html
Copyright © 2020-2023  润新知