曾经有人请教我 “ Babbage 先生,如果输入错误的数字到机器中,会得出正确结果吗?” 我无法理解产生如此问题的概念上的困惑。 —— Charles Babbage (1791 - 1871)
方法调用绑定
将一个方法调用和一个方法主题关联起来叫作,绑定。
Java除static和 final 方法,其他方法都是后期绑定。
可拓展性
遵循与基类接口通信,从而从通用的基类派生出新的数据类型,添加新的功能。
“将改变的事物与不变的事物分离”
Trap
“Override”私有方法
在上一章对于 final 方法的总结时,提及当func被指定为 private 时,不可被重写。
故再次强调@Override
的作用属性与静态方法
只有普通方法的调用是多态的。
如果直接访问属性,该访问会在编译时解析,需要显示访问。
如果方法为 static ,不具有多态性,只与类有关。
构造器调用顺序
为什么派生类构造过程中必须调用所有基类构造器?
由于属性通常为 **private** ,只有基类的构造器拥有权限初始化自身元素。
- 基类构造器被调用。这个步骤被递归地重复,这样一来类层次的顶级父类会被最先构造,然后是它的派生类,以此类推,直到最底层的派生类。
- 按声明顺序初始化成员。
- 调用派生类构造器的方法体。
- 如果构造器调用动态绑定方法,会使用那个方法的重写定义。
构造器—>创建对象,但若构造器只是构造对象过程中的一个步骤,