Java中的super()

来源:互联网 发布:中国金融软件 编辑:程序博客网 时间:2024/06/06 18:30

1.super();

当一个子类继承了父类,就表明这个子类继承了父类的一切,当然除了构造函数,那么,当实例化子类对象的时候,理应只初始化子类的构造函数,但是,并不是这个样子的,这里就要提到super();实际上,在初始化子类对象的时候,编译器默认的在子类的构造函数中加入<super()>,意思是去调用父类的构造函数,所以就有了先打印父类构造函数,然后子类构造函数。

下面用代码详细说明

class People//父

{

   Pelple()

  {

      System.out.println("我是父类的构造函数");

  }

}

class Student extends People//字
{

    Student()

   {

      System.out.println("我是子类的构造函数");

   }

}


//下边调用

class Test

{

    public static void main(String[]args)

  {

      //实例化子类对象

      Student s=new Student();

  }

}


//打印结果是:

我是父类的构造函数

我是子类的构造函数



2.解决冗余问题

代码如下

class People//父

{

   String name;

   int age;

   Pelple(String name,int age)

  {

      this.name=name;

      this.age=age;

  }

}

class Student extends People//字
{

    String address;

    Student(String name,int age,String address)

   {

       super(name,age);//调用父类的构造函数

       this.address=address;

   }

}


super()和this()的用法十分类似,前者是调用父类的构造函数,后者是调用本类的构造函数。








原创粉丝点击