`
LiYinlei
  • 浏览: 67849 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

继承里的构造函数

阅读更多

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

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

 

*/

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

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();

}

}

 

0
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics