在组合与继承之间选择

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

比如

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”的关系则是用组合来表达的。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值