Thinking in java学习笔记(六)

第七章 多态
1. 在面向对象的编程语言中,有三种基本特性:数据抽象,继承,多态。

2. 多态是什么意思?“如果我们只编写一个简单方法,它仅接受基类数据作为参数,而不是那些特殊的子类。这样做情况会变的更好么?也就是说,如果我们不管子类的存在,编写的代码只是与基类打交道,会不会好呢?”——这正是多态所允许的。

3. 一个被用来实现多态的方法可以完全忽略它周围代码所发生的变化,依旧正常运行。这正是期望多态所具有的特性。我们所做的代码修改,不会对程序中其他不应受到影响的部分产生破坏。从另一方面来说,多态是一项让程序员“将改变的的事物与未来的事物区分开来”的重要技术。

4. 由于private方法被自动认为是final方法,所以对子类是屏蔽的。只有基类中的非private方法可以被覆盖,明白的说,在子类中,对于基类中的private方法,我们最好用一个不同的名字。

5. Thinking in java3rd,我现在看的这本书翻译错误,override是覆盖,而overload才是重载。郁闷。

6. 基类的构造器总是在子类的构造过程中被调用,而且按照集成层次逐渐向上链接,以使每个父类的构造器都能得到调用。这样做是有意义的:因为构造器有一个特殊任务:检查对象是否被正确的构造。子类只能访问子类自身的成员,不能访问父类的成员(它们通常是private类型)。

7. 在构造器内部,我们必须确保所有要使用的成员都已经构造完毕。为达到这一目的,唯一的方法是先调用父类的构造器。组合的其他对象也必须进行初始化。

8. 作为一条有益的规则,在编写构造方法时:用尽可能少的方法来初始化对象,使之达到一个良好的状态,可以的话,尽量避免调用其他方法。

9. 如果不是后期绑定,就不是多态。

10. 为了在自己的程序中有效地使用多态以及面向对象的技术,必须扩展自己的编程视野,使其不仅包括单个类的成员和消息,而且也包括类与类之间达达共同特性以及它们之间的关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值