📅  最后修改于: 2023-12-03 15:01:49.377000             🧑  作者: Mango
在Java中,super()和this()都是构造函数中用于调用其他构造函数的关键字。然而,它们的使用方式和作用却有所不同。本文将详细介绍它们的区别。
super()是用于调用父类构造函数的关键字。它可以帮助子类构造函数初始化从父类继承而来的属性。
使用super()有以下几个特点:
下面是一个使用super()的示例:
class Parent {
int x;
Parent(int x) {
this.x = x;
}
}
class Child extends Parent {
int y;
Child(int x, int y) {
super(x);
this.y = y;
}
}
在这个示例中,子类Child的构造函数使用super(x)调用了父类Parent的构造函数,并传入了一个参数x,以初始化从父类继承而来的属性。
this()是用于调用当前类的其他构造函数的关键字。它可以帮助构造函数在不同的构造函数之间实现代码复用。
使用this()有以下几个特点:
下面是一个使用this()的示例:
class Person {
String name;
int age;
Person(String name) {
this(name, 0);
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在这个示例中,构造函数Person(String name)调用了另一个构造函数Person(String name, int age),从而实现了代码复用。