day6:《Thinking in Java》笔记第七章---复用类

一、概述

使用类但不破坏现有程序代码。实现方法:1.组合:只需在新类中产生现有类的对象。2.继承:按照现有类的类型来创建新类。

二、组合语法

toString()方法:每一个非基本类型的对象都有一个,当编译器需要一个String而你只有一个对象时该方法被调用。

三、继承语法

创建一个类时总是在继承,除非明确从其他类继承否则就是隐式的从Java标准根类Object进行继承。

使用关键字extends实现继承。使用super表示超类,当前类就是从超类中继承来的,super.scrub()表示调用基类的scrub()方法。

初始化基类:在构造器中调用基类构造器执行初始化。

四、代理

代理是组合和继承之间的中庸之道,使用代理时可以拥有更多的控制力,因为我们可以选择只提供在成员对象中的方法的某个子集。

五、结合使用组合和继承

1.确保正确清理:最好编写自己的清理方法,不要用finalize()

2.名称屏蔽:如果基类拥有某个已被多次重载的方法名称,则在导出类中重新定义该方法名称不会屏蔽其在基类中的任何版本

六、在组合和继承之间选择

组合和继承都允许在新类中放置子对象,组合是显式的,继承是隐式的。

组合技术通常用于想在新类中使用现有类的功能而非接口的情况。

继承和组合都能从现有类型生成新类型。组合一般是将现有类型作为新类型底层实现的一部分来加以调用,继承复用的是接口。

七、protected关键字

对于类用户而言是private的,对于任何继承与此类的导出类或其他任何位于同一个包内的类来说是可以访问的(提供包内访问权限)。

八、向上转型

由导出类转到基类,因为是从较专用类型向较通用类型转换,所以向上转型是安全的。

判断使用继承还是组合的最有效方法是是否需要从子类向基类向上转型,若需要则需使用继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值