zoukankan      html  css  js  c++  java
  • 三大特性之多态

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

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

    #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];

  • 相关阅读:
    vue-awesome-swiper
    兼容各浏览器到达顶部
    正则表达式
    设置当前窗口url中param的值
    IE8不支持的部分css3属性处理
    WebGL中的函数及内置属性介绍
    WebGL着色器
    cookie的存储
    如何处理一段字符串数据
    MUI框架
  • 原文地址:https://www.cnblogs.com/imChay/p/5590351.html
Copyright © 2011-2022 走看看