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

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

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

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

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

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

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

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

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

  • 相关阅读:
    JAVA应用程序占用CPU、内存过高分析过程
    html和css问题?
    html跳动的心实现代码
    css知识点总结
    html注册栏网页练习代码
    前端开发单词大全
    html常用代码合集
    html背景图星际导航图练习
    html迪士尼网页实现代码
    html阿里云网页练习实现代码
  • 原文地址:https://www.cnblogs.com/lmg4819/p/4861644.html
Copyright © 2011-2022 走看看