复用类的两种方法:在新类中使用现有类的对象,称为组合;按照现有类创建新类,称为继承。
类中域为基本类型能够自动被初始化为零,对象被初始化为null。
初始化位置:1)在定义的地方2)构造器中3)在正要使用之前,称为惰性初始化4)实例初始化
Java中使用super关键字表示超类。
父类的构造器会在子类的构造器被调用之前调用。
如果没有默认的父类构造器,或者想调用一个带参数的父类构造器,就必须使用super关键字显示地编写调用父类构造器的语句。
代理是组合和继承的中庸方案,既使用了现有类对象,又暴露了所有方法。
清理顺序与初始化顺序相反,先执行子类清理,再执行父类清理。
子类可以重载父类的方法,父类的方法也可以正常工作,@Override注解表示该方法是重写方法,如果写成了重载形式,会报错。
向上转型和向下转型。
final数据:不改变的编译时常量,运行时初始化的值,不改变。
static final域只占一段不能改变的存储空间。final对象表示应用不能在指向其他对象,但是对象本身可以修改。
空白final表示在使用时进行初始化。
final参数表示方法中不能改变该对象的应用到其他对象。
final方法:不会被覆盖,效率高。private方法默认就是final的。
final类:不能被继承。
初始化顺序:父类加载,父类静态初始化,子类加载,子类静态初始化,父类构造器调用,父类实例化,子类构造器调用,子类实例化。