组合与继承之间选择

        组合和继承都允许在新的类中放置子对象,组合是显示地这样做,而继承则是隐式地做。

        组合技术通常用于想在新类中使用现有类的功能而非它的接口这种情形。即,在新类中嵌入某个兑现,让其实现所需的功能,但新类的用户看到的只是为新类所定义的接口,而非所嵌入兑现的接口。为取得此效果,需要在新类中嵌入一个现有类的private对象。

        在继承的时候,使用某个现有类,并开发一个它的特殊版本。通常,这意味着你在使用一个通用类,并为了某种特殊需要而将其特殊化。is-a的关系是用继承来表达的,而has-a的关系是用组合来表达的。是否需要从新类向基类进行向上转型。如果必须向上转型,则继承是必要的;

        为新的类提供方法并不是继承技术中最重要的方面,其最重要的方面是用来表现新类和基类之间的关系。这种关系可以用“新类是现有类的一种类型”加以概括


        使用final方法的两个原因:第一、方法锁定,以防任何继承类修改它的含义,这是出于设计的考虑;想要确保在继承中使方法行为保持不变,并且不会被覆盖。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值