Java中复用类的两种方法

本文探讨了软件开发中的两种主要复用技术——组合与继承。详细解释了这两种技术的工作原理及应用场景,并对比了它们的相似之处与关键差异。有助于开发者更好地理解如何在实际项目中选择合适的复用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复用类:通过创建新类来复用代码,使新类具有更多的功能,不必从头开始编写。

1、  组合

在新类中产生现有类的对象,这种方法只是复用了现有程序代码的功能,而不是它的形式。

2、  继承

按照现有类来创建新类,采用现有类的形式并在其中添加新代码。

(1)    继承不只是复制父类的接口,当创建一个子类对象时,该对象包含了一个父类的子对象,这个子对象与用父类直接创建的对象是一样的。二者的区别在于前者父类的子对象被包装在父类的内部,而后者来自于外部。

(2)    Java会自动在导出类的构造器中插入对基类构造器的调用。

(3)    如果基类没有默认的构造器或者想调用一个带参数的构造器来对基类进行初始化,则在导出类中必须使用super显示调用基类的构造器。

3、两者之间的异同点

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

区别:

组合一般是将现有类型作为新类型底层实现的一部分来加以复用,而继承复用的是接口。

在”is-like-a”(像是一个)关系中用继承表达,而”has-a”(有一个)的关系用组合表达。


总结:到底使用组合还是继承,一个判断方法是自己是否需要从新类向基类进行向上转型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值