曾经有人请教我 “ Babbage 先生,如果输入错误的数字到机器中,会得出正确结果吗?” 我无法理解产生如此问题的概念上的困惑。 —— Charles Babbage (1791 - 1871)

方法调用绑定

将一个方法调用和一个方法主题关联起来叫作,绑定。
Javastaticfinal 方法,其他方法都是后期绑定

可拓展性
遵循与基类接口通信,从而从通用的基类派生出新的数据类型,添加新的功能。
“将改变的事物与不变的事物分离”

Trap

  1. “Override”私有方法

    在上一章对于 final 方法的总结时,提及当func被指定为 private 时,不可被重写。
    故再次强调 @Override 的作用

  2. 属性与静态方法

只有普通方法的调用是多态的。
如果直接访问属性,该访问会在编译时解析,需要显示访问。
如果方法为 static ,不具有多态性,只与类有关。

构造器调用顺序

  • 为什么派生类构造过程中必须调用所有基类构造器?

    1. 由于属性通常为 **private** ,只有基类的构造器拥有权限初始化自身元素。
    • 基类构造器被调用。这个步骤被递归地重复,这样一来类层次的顶级父类会被最先构造,然后是它的派生类,以此类推,直到最底层的派生类。
    • 按声明顺序初始化成员。
    • 调用派生类构造器的方法体。
  • 如果构造器调用动态绑定方法,会使用那个方法的重写定义。

构造器—>创建对象,但若构造器只是构造对象过程中的一个步骤,