黑马程序员技术交流社区

标题: 关于继承 组合的问题 [打印本页]

作者: 程序猿-2014    时间: 2014-4-16 23:21
标题: 关于继承 组合的问题
继承的定义式XXXX  是  XXXXX    组合是  XXXX 拥有 XXXXX   我想问下在一个类中能够同时使用继承   和组合两种方法么 ?   比如说学生是人而且拥有书

作者: 脸皮猴    时间: 2014-4-16 23:25
必须可以,这个不冲突的。
作者: D调的沉默    时间: 2014-4-17 10:13
       这个当然可以,继承是符合逻辑的,可以这么解释,学生是人的一种,学生拥有人的所有的属性,所以学生类可以继承人类的全部属性和方法,这就是继承,继承的坏处就是耦合性太强了。

      而组合是,学生拥有成绩,如c语言成绩,英语成绩属性,而且成绩类也拥有这些属性,但是,不能说学生是成绩的一种,可以说学生拥有成绩,这时候使用组合。

    你上面说的学生是人而且有书可以,继承和组合可以一块使用,但是不可以某一个类即继承一个类,又有拥有这个类
作者: 李烨    时间: 2014-4-17 12:22
举个最常见的例子
Person.h里
#import "Book.h"
#interface Person : NSObject
#property (nonatomic, assign) Book *book;
#end

这个例子里,person和book就是组合,person和nsobject继承

作者: apple_victor    时间: 2014-4-17 14:11
记住这个就行了,继承是 is a  解释:is a 就是某个东西是什么,举个例子:学生是人,这是继承 组合是 has a  解释:has a 是某个东西拥有什么,举个例子:人有两个胳膊,两条腿,这就是组合。
作者: 戴文婷    时间: 2014-4-23 09:23
可以把,比如,student继承person ,同事student 有一个成员变量,book类,
只要记住单继承就可以了。成员变量可以是多个类。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2