子类继承父类中的static模块、构造方法执行顺序及java多态性
程序员文章站
2022-04-21 23:50:58
...
验证子类继承父类中的static模块、构造方法执行顺序
验证java多态性
1、父类代码
public abstract class ParentClass {
static{
System.out.println("父类的执行static模块化内容");
}
public ParentClass() {
System.out.println("父类的构造函数");
dealParent();
validate();
}
public void dealParent(){
System.out.println("处理父类中构成函数的调用方法");
}
abstract void validate();
}
2、子类代码
package com.zhai.classorder;
public class ChildrenClass extends ParentClass {
static{
System.out.println("子类的static内容");
}
public ChildrenClass(){
System.out.println("子类的构造函数");
}
@Override
void validate() {
System.out.println("子类重写父类方法");
}
}
3、测试类
package com.zhai.enter;
import com.zhai.classorder.ChildrenClass;
public class MainClass {
public static void main(String[] args) {
new ChildrenClass();
}
}
4、结果
5、结果分析
1、父类static–>子类static–>父类构造方法–>子类构造方法
2、java多态性:若父类调用自身的抽象方法,会往下找对应的子类(谁触发调用父类)的重写方法