21xrx.com
2024-11-22 13:35:24 Friday
登录
文章检索 我的文章 写文章
我最近在学习Java面向对象编程中
2023-06-10 14:15:57 深夜i     --     --
Java super() 面向对象编程

我最近在学习Java面向对象编程中,对于super()方法的作用感到非常好奇,经过学习和实践后,我总结出了以下内容,希望能对大家有所帮助。

1. super()方法是用来调用父类的构造方法,通常出现在子类的构造方法中的第一行。

例如,下方代码就是一个子类构造方法中使用super()调用父类构造方法的例子:


public class ParentClass {

  public ParentClass(int x)

    // constructor code

  

}

public class ChildClass extends ParentClass {

  public ChildClass(int y) {

    super(y); // calls ParentClass(int x)

    // constructor code

  }

}

在子类的构造方法中,使用super(y)调用ParentClass(int x)构造方法。

2. 如果子类构造方法没有使用super()明确调用父类构造方法,Java编译器会默认在子类构造方法中加入super()语句,调用父类无参构造方法。

例如,下方代码展示了子类构造方法中没有明确使用super(),但经过编译后会默认调用父类无参构造方法的情况:


public class ParentClass {

  public ParentClass()

    // constructor code

  

}

public class ChildClass extends ParentClass {

  public ChildClass() {

    // compiler adds super() here, calls ParentClass()

    // constructor code

  }

}

3. 当父类没有默认构造方法时,子类必须使用super()调用父类的有参构造方法来进行初始化。

例如,下方代码展示了父类没有默认构造方法时,子类必须使用super()调用父类的有参构造方法进行初始化的情况:


public class ParentClass {

  public ParentClass(int x)

    // constructor code

  

}

public class ChildClass extends ParentClass {

  public ChildClass(int y, int z) {

    super(y); // calls ParentClass(int x)

    // constructor code

  }

}

在子类构造方法中,使用super(y)调用父类有参构造方法。

综上,super()方法是Java中一个非常重要的关键字,其用途是调用父类的构造方法来完成初始化工作。在Java面向对象编程中,使用super()可以让我们的代码更加规范和优雅。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复