java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

1.java不继承构造器。但默认调用继承的构造器。

1class  Art
{
    Art()
    {
        System.out.println("Art constructor");
    }
}
class Drawing extends Art
{
    public Drawing()
    {
        System.out.println("Drawing constuctor");
    }
}
public class Cartoon extends Drawing
{
     public Cartoon()
    {
        System.out.println("Cartoon constutor");
    }

    public static void main(String[] args) 
    {
        //System.out.println("Hello World!");
        Cartoon x=new Cartoon();
    }
}

则结果为 :
Drawing constuctor
Cartoon constutor

如果显示的在Cartoon构造器中添加super(),则调用父类最上层构造器。

1class  Art
{
    Art()
    {
        System.out.println("Art constructor");
    }
}
class Drawing extends Art
{
    public Drawing()
    {
      // super();
        System.out.println("Drawing constuctor");
    }
}
public class Cartoon extends Drawing
{
     public Cartoon()
    {
         super();
        System.out.println("Cartoon constutor");
    }

    public static void main(String[] args) 
    {
        //System.out.println("Hello World!");
        Cartoon x=new Cartoon();
    }
}

则结果为:

Art constructor

Drawing constuctor

Cartoon constutor

2 super(参数列表)是调用父类构造器,所以多次继承的时候,最底层调用的时候,上面多层在构造函数中也必须显示的定义出来。

1class Game
{
    Game(int i)
    {
        System.out.println("Game World!");
    }
}
class BoardGame extends Game
{
    BoardGame(int i)
    {
        super(i);//不可注释,出错。
        System.out.println("BoardGame World!");
    }
}
public class Chess extends BoardGame
{
    Chess()
    {
        super(11);
        System.out.println("Chess World!");
    }
    public static void main(String[] args) 
    {
        //System.out.println("Hello World!");
        Chess x=new Chess();
    }
}

3 子类含参构造器调用的是父类含参构造器,子类默认构造器调用父类默认构造器。如果父类只有含参构造器,则可以如下处理。

1class Basis 
{
    Basis(int i)
    {
        System.out.println("Basis World!");
    }
}
public class Subasis extends Basis
{
    Subasis(int i)
    {
        super(i);
//      System.out.println("FMoo World!");
    }
  Subasis()
    {
        super(7);
        System.out.println("Moo World!");
    }

    public static void main(String[] args) 
    {
//      System.out.println("Hello World!");
        Subasis x=new Subasis();
    }
}

java构造器继承

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。