在组合与继承之间选择

来源:互联网 发布:淘宝彩虹系统 编辑:程序博客网 时间:2024/05/21 19:29

    组合是简单的把对象引用至于新类。

比如

class House{
    private Window w=new Window();
    private Door d=new Door();
}
class Window{

}
class Door{   
}

    继承是Java语言不可缺少的组成部分。当创建一个类时,总是存在继承(Object)。

class Apple extends Fruit {
}
class Fruit {
}

    那么什么时候应该用组合,什么时候应该用继承呢?

think in java中是这么说的。

    在继承的时候,使用某个现有类,并开发一个它的特殊版本。通常,这意味着你在使用一个通用类,并为了某种特殊需要而将其特殊化。略微思考一下就会发现,用一个“交通工具”对象来构成一部“车子”(组合)是毫无意义的,因为“车子”并不包含“交通工具”,它仅是一中交通工具(is-a关系)。“is-a”的关系是用继承来表达的,而“has-a”的关系则是用组合来表达的。

    这是最基本的面向对象编程思想,我们在编写代码的时候应该牢记它。

原创粉丝点击