扩展类的形式与定义
来源:互联网 发布:水产养殖生产日志数据 编辑:程序博客网 时间:2024/06/06 11:48
类目(categroy):指向已知的类增加新的方法,不会破坏封装性。
1;在类目中定义的方法会成为原始类的一部分,调用与其它方法相同。
2:在父类中添加类目子类会继承该类目中的方法,但在子类中添加类目父类无法拥有这些方法。
类目(categroy)定义
命名规则:类名+扩张方法 类目不继承于父类,但接口与定义类很相似,用一个括号表示用途。
类目(categroy)的应用
1:对类进行扩展。
2:作为子类的替换,可以通过类目向已有类中添加方法,与定义子类一样。
3:把类中的方法归类,可以更好地管理和维护类。
类目的局限性
1:无法向类中添加实例变量,如果需要添加实例变量则只能在子类中添加。
2:如果在类目中重写父类方法,可能导致super消息的断裂,因为在类目中的方法优先级高于父类。
延展(Extension):在本类里声明私有方法。
1:延展定义的方法是在implemetation中。
2:声明的方法是私有方法。
3:延展中声明的方法可以不实现。
协议
协议(protocol):声明一套方法,但是让别的类实现。协议没有父类也不能定义实例变量。
作用:
1:需要有别的类实现的方法
2:声明为之类的借口
3:两个类之间的通信
协议(protocol)的特点
1:协议声明的方法可以被任何类实现。
2:协议不是类,是定义了可以被其他类实现的接口。
3:如果在某个类中实现了协议中的一个方法,那么可以说这个类实现了该协议。
@required和@optional
required是必须要实现的方法,默认情况下是required
optional时可选择实现的方法。
0 0
- 扩展类的形式与定义
- 数据结构的形式定义
- 数组的定义形式
- 关于宏定义的形式
- __repr__定义一个类的特定返回形式
- Extjs4 类的定义和扩展
- xml文档定义形式以及形式之间的区别
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 想了解概率图模型?你要先理解图论的基本定义与形式
- Where子句标准形式的定义:
- 定义函数指针的两种形式
- 尽量定义class形式的Function Object
- 指针定义的几种形式
- Python中,函数定义的基本形式
- string类
- 类和对象,方法,面向对象思想(1…
- 设置器和访问器
- super,self,id等关键字
- 类和对象,方法,面向对象思想(2…
- 扩展类的形式与定义
- 内存管理(1)
- 内存管理(2)
- 百度定位SDK实现获取当前经纬度及位置
- 单例设计
- UI(1)APP生命周期,应用程序委托…
- UI(2)视图基础
- UI常用控件
- 导航控制器的基本概念和用法