java 中的 super()
用于调用父构造函数?请解释 。super()
super()
super()
调用不带参数的父构造函数。
它也可以与参数一起使用。即 并且它将调用接受类型(如果存在)的 1 个参数的构造函数。super(argument1)
argument1
此外,它还可用于从父级调用方法。即super.aMethod()
更多信息和教程请点击这里
一些事实:
super()
用于调用直接父级。super()
可以与实例成员一起使用,即实例变量和实例方法。super()
可以在构造函数中用于调用父类的构造函数。好了,现在让我们实际实现 .super()
查看程序 1 和 2 之间的区别。在这里,程序 2 在 Java 中证明了我们的第一个语句。super()
计划1
class Base
{
int a = 100;
}
class Sup1 extends Base
{
int a = 200;
void Show()
{
System.out.println(a);
System.out.println(a);
}
public static void main(String[] args)
{
new Sup1().Show();
}
}
输出:
200
200
现在查看程序2并尝试找出主要区别。
计划2
class Base
{
int a = 100;
}
class Sup2 extends Base
{
int a = 200;
void Show()
{
System.out.println(super.a);
System.out.println(a);
}
public static void main(String[] args)
{
new Sup2().Show();
}
}
输出:
100
200
在程序 1 中,输出仅为派生类的输出。它既不能打印基类也不能打印父类的变量。但是在程序 2 中,我们在打印变量输出时使用变量,而不是打印派生类的变量值,而是打印基类的变量值。所以它证明是用来称呼直系父母的。super()
a
a
a
super()
好了,现在看看程序3和程序4之间的区别。
计划3
class Base
{
int a = 100;
void Show()
{
System.out.println(a);
}
}
class Sup3 extends Base
{
int a = 200;
void Show()
{
System.out.println(a);
}
public static void Main(String[] args)
{
new Sup3().Show();
}
}
输出:
200
此处的输出为 200。当我们调用 时,派生类的函数被调用。但是,如果我们想调用父类的函数,我们该怎么办呢?请查看程序 4 以获取解决方案。Show()
Show()
Show()
计划4
class Base
{
int a = 100;
void Show()
{
System.out.println(a);
}
}
class Sup4 extends Base
{
int a = 200;
void Show()
{
super.Show();
System.out.println(a);
}
public static void Main(String[] args)
{
new Sup4().Show();
}
}
输出:
100
200
在这里,我们得到两个输出,100和200。当调用派生类的函数时,它首先调用父类的函数,因为在派生类的函数内部,我们通过在函数名称之前放置关键字来调用父类的函数。Show()
Show()
Show()
Show()
super