有关java构造函数,变量初始化的小问题
发布网友
发布时间:2022-06-02 14:10
我来回答
共1个回答
热心网友
时间:2023-11-01 02:46
首先程序从MAIN入口开始运行,B
b=new
B();
这句。NEW是实例化的关键词,会调用构造函数:B(),但是JVM发现B有父类(A),那么先执行父类(A)的构造函数,就是A(),这些都是JVM执行类的顺序,是规则,接着看父类构造函数里面的内容,调用了INIT(),这里又有一个规则,当子类(B)覆盖了父类的方法,那么就调用子类的方法,所以执行了B类里面的INIT(),最后完成B的实例化(实例化就是调构造函数),调用B()。
再简单解释一下覆盖的概念:与父类的方法名一样,并且方法的参数列表也一样,方法的访问权限大于等于父类被覆盖的方法的权限。
希望能对你有帮助~