第七章 多态
1. 在面向对象的编程语言中,有三种基本特性:数据抽象,继承,多态。
2. 多态是什么意思?“如果我们只编写一个简单方法,它仅接受基类数据作为参数,而不是那些特殊的子类。这样做情况会变的更好么?也就是说,如果我们不管子类的存在,编写的代码只是与基类打交道,会不会好呢?”——这正是多态所允许的。
3. 一个被用来实现多态的方法可以完全忽略它周围代码所发生的变化,依旧正常运行。这正是期望多态所具有的特性。我们所做的代码修改,不会对程序中其他不应受到影响的部分产生破坏。从另一方面来说,多态是一项让程序员“将改变的的事物与未来的事物区分开来”的重要技术。
4. 由于private方法被自动认为是final方法,所以对子类是屏蔽的。只有基类中的非private方法可以被覆盖,明白的说,在子类中,对于基类中的private方法,我们最好用一个不同的名字。
5. Thinking in java3rd,我现在看的这本书翻译错误,override是覆盖,而overload才是重载。郁闷。
6. 基类的构造器总是在子类的构造过程中被调用,而且按照集成层次逐渐向上链接,以使每个父类的构造器都能得到调用。这样做是有意义的:因为构造器有一个特殊任务:检查对象是否被正确的构造。子类只能访问子类自身的成员,不能访问父类的成员(它们通常是private类型)。
7. 在构造器内部,我们必须确保所有要使用的成员都已经构造完毕。为达到这一目的,唯一的方法是先调用父类的构造器。组合的其他对象也必须进行初始化。
8. 作为一条有益的规则,在编写构造方法时:用尽可能少的方法来初始化对象,使之达到一个良好的状态,可以的话,尽量避免调用其他方法。
9. 如果不是后期绑定,就不是多态。
10. 为了在自己的程序中有效地使用多态以及面向对象的技术,必须扩展自己的编程视野,使其不仅包括单个类的成员和消息,而且也包括类与类之间达达共同特性以及它们之间的关系。
1. 在面向对象的编程语言中,有三种基本特性:数据抽象,继承,多态。
2. 多态是什么意思?“如果我们只编写一个简单方法,它仅接受基类数据作为参数,而不是那些特殊的子类。这样做情况会变的更好么?也就是说,如果我们不管子类的存在,编写的代码只是与基类打交道,会不会好呢?”——这正是多态所允许的。
3. 一个被用来实现多态的方法可以完全忽略它周围代码所发生的变化,依旧正常运行。这正是期望多态所具有的特性。我们所做的代码修改,不会对程序中其他不应受到影响的部分产生破坏。从另一方面来说,多态是一项让程序员“将改变的的事物与未来的事物区分开来”的重要技术。
4. 由于private方法被自动认为是final方法,所以对子类是屏蔽的。只有基类中的非private方法可以被覆盖,明白的说,在子类中,对于基类中的private方法,我们最好用一个不同的名字。
5. Thinking in java3rd,我现在看的这本书翻译错误,override是覆盖,而overload才是重载。郁闷。
6. 基类的构造器总是在子类的构造过程中被调用,而且按照集成层次逐渐向上链接,以使每个父类的构造器都能得到调用。这样做是有意义的:因为构造器有一个特殊任务:检查对象是否被正确的构造。子类只能访问子类自身的成员,不能访问父类的成员(它们通常是private类型)。
7. 在构造器内部,我们必须确保所有要使用的成员都已经构造完毕。为达到这一目的,唯一的方法是先调用父类的构造器。组合的其他对象也必须进行初始化。
8. 作为一条有益的规则,在编写构造方法时:用尽可能少的方法来初始化对象,使之达到一个良好的状态,可以的话,尽量避免调用其他方法。
9. 如果不是后期绑定,就不是多态。
10. 为了在自己的程序中有效地使用多态以及面向对象的技术,必须扩展自己的编程视野,使其不仅包括单个类的成员和消息,而且也包括类与类之间达达共同特性以及它们之间的关系。