欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

继承里的构造函数

程序员文章站 2022-07-12 11:57:37
...

/** 继承中的构造函数初始化顺序

     先初始化父类里的构造函数,之后再执行子类里的构造函数。

 

*/

=============================================================================

class FuQin{

FuQin(){

System.out.println("Fu run...");

}

}

class ErZi extends FuQin{

ErZi(){

       //super ();子类默认构造函数的第一行都有一条隐式的语句。

System.out.println("Zi run..");

}

}

 

public class GouZaoFunction {

public static void main(String[] args) {

ErZi zi=new ErZi();//执行结果为:Fu run...    Zi run...

}

}

 ====================================================================================

 /*   *

    如果父类里面没有构造函数,虚拟机会默认的产生一个无参构造函数。

*/

class FuQin{

 

}

class ErZi extends FuQin{

ErZi(){

       //super ();子类默认构造函数的第一行都有一条隐式的语句。

System.out.println("Zi run..");

}

}

 

public class GouZaoFunction {

public static void main(String[] args) {

ErZi zi=new ErZi();//执行结果为:  Zi run...

}

}

 

 ====================================================================================

 /**

    如果父类里面有一个有参数的构造函数,则虚拟机就 不会自动生成一个无参数的构造函数了

*/

class FuQin{

FuQin(int x){

System.out.println("Fu dai can shu run...");

}

}

class ErZi extends FuQin{

//此时这里编译异常:Implicit super constructor FuQin() is undefined. Must explicitly invoke another constructor,故此时在父类类里面也应该手动写上无参数的构造函数。

ErZi(){

       //super ();子类默认构造函数的第一行都有一条隐式的语句。

System.out.println("Zi run..");

}

}

 

public class GouZaoFunction {

public static void main(String[] args) {

ErZi zi=new ErZi();

}

}