本帖最后由 焦晨光 于 2012-8-1 20:30 编辑
楼主应该问的是组合和继承的区别吧
组合:简单来说就是在新的类中产生现有类的对象,它是复用现有程序代码的功能,一般用(has-a)即有一个的关系来表示。
例如:手是人的一部分,耳朵、眼睛、鼻子都是人的一部分。是拥有关系
组合:
class 人{
//.....
}
class 手{
人 手;
}
继承:按照现有的类来创建新类,一般用(is-a)即是一个的关系来表示。
例如:苹果 香蕉 梨 等都是属于水果类,它们都是水果类里的一个实例,是属于关系;
class 水果{
//.....
}
class 苹果 extends 水果{
//.....
}
到底是该用组合还是用继承,一个最清晰的判断方法就是问一问自己是否需要从新类向上转型。
如果必须向上转型,则继承是必要的;但如果不需要,则应该好好考虑自己是否需要继承。
毕老师的视频里讲的很清楚 |