调用子类构造器来初始化子类对象时,父类构造器会在子类构造器之前执行

xiaoxiao2021-02-28  62

父类若没有不带参数的构造器,子类构造器必须显式调用超类其他构造器,例子:

class Base{ Base(){ System.out.println("Base with no arg"); } } public class Test1 extends Base{ Test1(int v1){ } public static void main(String[] args){ Test1 t1=new Test1(3); } } 输出结果为:Base with no arg;

这里子类没有显示调用父类的构造器,但是父类的构造器还是被调用了,说明Java加载类时会加载无参的父类构造函数。不仅如此,执行父类构造器时,系统会再次上溯执行其父类构造器……以此类推,创建任何Java对象,最先执行的总是java.langObject;类的构造器。

转载请注明原文地址: https://www.6miu.com/read-62351.html

最新回复(0)