浅谈Objective-C继承和多态


继承的试用场合:

  • 当两个类拥有相同的属相和方法时,就可以将相同的属性和方法抽取到一个父类中。
  • 当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类,也可以考虑使用组合。
  • 继承:###是XXX,如狗是动物,可以让狗继承动物类
  • 组合:###拥有XXX,如学生有书,可以让书这个类作为学生类的属性。

继承的使用注意:

  • 编译器从上往下执行,所以在子类前面至少应该要有父类的声明;
  • OC中不允许子类和父类拥有相同名称的成员变量;
  • OC中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果没有则一层一层往上找;
  • 重写即子类重新实现了父类中的某个方法,覆盖了父类以前的实现。你重新实现的方法,必须要和父类的方法原型相同,即有相同的返回值类型和参数。
  • 方法可以从父类继承到子类,但是不可以从子类到父类。

多态:用一个父类的指针指向子类的对象,在函数调用时可以调用到正确版本的函数。

  • 1.用一个父类的指针指向一个子类的对象。
  • Animal *b = [[Cat alloc] init];
  • 2.用一个父类的指针当函数的形参,用这个指针可以接收到任何它的子类的对象也包括他自己。
  • 3.在复合类中,尽量引用高层次的类当作类的成员变量,这样可以通过它创建出它所对应的任何子类对象包括它自己。

优质内容筛选与推荐>>
1、POJ 2001 - Shortest Prefixes - [字典树]
2、javaScript中prototype的妙用 巧妙运用prototype属性原型链创建对象
3、java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
4、python的异常处理和模块发布安装
5、ActionScript3.0平铺由外部加载的图片


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号