zoukankan      html  css  js  c++  java
  • 类别和协议

    类别是另一种为现有类添加新行为的方法。不同于子类,类别实际上是oc的一种动态行为,它利用了运行时分配机制。因此,类别甚至不需要拥有原类的源代码。此外,类别不能向现有的类中添加实例变量。

    类别有很多好处,比如把类的实现分散到多个implementation文件里,或者用于创建非正式协议;

    类别也有一些限制,在类别的使用中一定要注意两点:

    类别仅仅是一堆方法的集合,你无法为类添加实例变量。

    类别不能解决命名冲突,如果类别中的方法与类原有的方法重名,则类中的方法被覆盖。

    oc中的协议等同于java接口的概念,协议看起来就像类别的生命,还是一堆方法声明的集合。

    正式协议的意思是,每个采用这份协议的类必须实现这份协议中的所有方法,这种说法一直持续到oc2.0,从oc2.0开始,协议中的方法可以有选择的由类实现。对于必须实现的方法,用关键字@required修饰,对于可选择性实现的方法,使用@optional关键字修饰。

    非正式协议不需要采用@protocol关键字声明,但需要创建一个类别。

  • 相关阅读:
    自相关函数 互相关函数 平稳随机过程
    MC323发短信程序+MSP430F149
    labview notes
    DSSS FHSS
    dBm与功率(w)换算关系!
    int 正负相乘
    51单片机 1602液晶显示
    51单片机 AD转换
    51单片机 蜂鸣器
    51单片机 串口通信
  • 原文地址:https://www.cnblogs.com/lmg4819/p/4861644.html
Copyright © 2011-2022 走看看