首先看一道面试题:
如题,分析下运行main函数会输出什么呢?
直接滑道底部查看答案,对了你就不用看喽 --<-<-<@
主要以下三个考点
- 类初始化过程
都说了孕妇优先,一个类要创建实例而需要先加载,main这个方法所在的类需要先加载初始化。
子类想初始化得先通过老子,不初始化老子哪来的小子。初始化类就是《clinit》方法,一次就好哦,静态变量-->静态代码块
- 实例初始化过程
实例初始化就是《init》方法,有几个构造器就有几个《init》方法,init方法包含静态变量赋值+静态代码块+对应构造器代码
每次创建对象,调用对应构造器执行对应的init方法,init方法首行是super()也就是对应父类init方法。
- 子类super()方法。。。最前
- 静态变量、静态代码块
- 子类无参构造函数。。。最后
- 重写方法
那些方法不会被重写?
final方法+静态方法+private等子类中不可见方法对象
对象的多态性
子类如果重写了父类的方法,通过子类对象调用的一定是子类自己重写过的方法。
非静态方法 默认 调用的调用对象是 tihs
this对象在构造器或者说《init》方法中就是正在创建的对象
答案:Right here waiting