7.1 当需要String时,编译器会自动调用toString()
7.2 导出类构造器和基类构造器
所有的类都可以含有main方法,无需删除,方便单元测试。
- 创建从基类继承的类的对象会先执行基类构造器,然后再执行继承类的构造器,所以导出类构造器中必须带有基类构造器。
- 若想要在继承类中调用基类的带参数的构造器,需要使用super关键字****。
7.6 protected 关键字
7.7 向上转型
导出类对象自动提升到基类对象,向上转型是安全的,只会丢失方法
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,但是方法不能重写