首先看一道面试题:

如题,分析下运行main函数会输出什么呢?

直接滑道底部查看答案,对了你就不用看喽 --<-<-<@

主要以下三个考点

  1. 类初始化过程

       都说了孕妇优先,一个类要创建实例而需要先加载,main这个方法所在的类需要先加载初始化。

子类想初始化得先通过老子,不初始化老子哪来的小子。初始化类就是《clinit》方法,一次就好哦,静态变量-->静态代码块

  1. 实例初始化过程

       实例初始化就是《init》方法,有几个构造器就有几个《init》方法,init方法包含静态变量赋值+静态代码块+对应构造器代码

每次创建对象,调用对应构造器执行对应的init方法,init方法首行是super()也就是对应父类init方法。

  • 子类super()方法。。。最前
  • 静态变量、静态代码块
  • 子类无参构造函数。。。最后
  1. 重写方法

那些方法不会被重写?

final方法+静态方法+private等子类中不可见方法对象

对象的多态性

  子类如果重写了父类的方法,通过子类对象调用的一定是子类自己重写过的方法。

  非静态方法 默认 调用的调用对象是 tihs

  this对象在构造器或者说《init》方法中就是正在创建的对象

 

 

 

 

 

答案:Right here waiting