黑马程序员技术交流社区
标题:
继承、多态、组合
[打印本页]
作者:
u37kl
时间:
2016-2-20 15:01
标题:
继承、多态、组合
继承:
1、OC中的根类NSObject,没有父类。
2、每一个自定义OC类都必须继承NSObject类或NSObject类的子类。
3、子类会继承父类所有的成员变量和方法,包括在父类实现中声明的变量和没有在类声明中声明的方法。
4、子类不能声明和父类同名的成员变量。
5、子类可以覆写父类的方法。
6、子类调用方法时,优先从本类中找,找不到才到父类中找,每个类都有一个superClass指针指向自己的父类,通过该指针找到父类的类对象(类对象中保存该类的方法列表)。
7、继承优点:将相同的实体的共同属性和行为抽象出来,减少代码的冗余。
8、继承缺点:增加类与类之间的耦合性,每个父类都是子类的存在前提。
--------------------------------------------------------------------------------------------
组合:
1、类与类之间的关系:继承和组合。
2、何为组合:某个类是另一个类的成员变量,即某类拥有某类,例如:Person类和Dog类,这两个类没有继承关系,只有人拥有狗才符合逻辑。
--------------------------------------------------------------------------------------------
多态:
1、何为多态:类的多种形态,例如人有三种状态分别为男人、女人、太监。
2、动态绑定:父类指针指向子类对象,系统会根据所指向的类的实际类型,调用相应的方法。
3、多态好处:当父类作为方法参数时,可以接收所有继承父类的子类对象,提高了代码的重用性。
4、多态局限性:父类指针指向子类对象时,不能调用子类特有的方法,除非对指针变量进行强制类型转换。
5、OC中id类型指针可以指向任何OC对象,并且可以访问对象的任何方法,没有多态局限性。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2