7.1 当需要String时,编译器会自动调用toString()

image.png

7.2 导出类构造器和基类构造器

所有的类都可以含有main方法,无需删除,方便单元测试。

  • 创建从基类继承的类的对象会先执行基类构造器,然后再执行继承类的构造器**,所以导出类构造器中必须带有基类构造器**。

    • 若想要在继承类中调用基类的带参数的构造器,需要使用super关键字**。**
    • image.png

      7.6 protected 关键字

      image.png

      7.7 向上转型

      导出类对象自动提升到基类对象,向上转型是安全的,只会丢失方法。
      image.png
      **

      7.7.2 再论继承与组合

      使用继承还是组合最清晰的办法就是要不要向上转型。如果要向上转型,那继承是必要的。如果不需要,再好好考虑

      7.8 final关键字

      7.8.1 final 数据

  • 若是基本数据类型则值不变

  • 若是对象引用则引用不变,一旦被初始化,则无法再指向另一个对象,对象自身可以修改
  • 既是static又是final的变量用大写表示。

    final 参数

  • 方法的参数列表指定为final。基本数据类型值不能修改,引用对象不能更换指向。

    7.8.2 final 方法

  • final方法不能重写

  • private方法已经隐式的指定为final,不能重写。
  • final方法可以关闭动态绑定 。

    7.8.3 final 类

  • final类不能继承

  • final类中的变量可以选择final或者不final,但是方法不能重写 。