要在子类中显式调用直接父类带参数的构造方法,可通过super()调用来实现。
关于super和this的区别:
super调用和this调用很像,区别在于super调用的是其父类的构造方法,而this调用的是同一个类中重载的构造方法。因此,使用super调用父类构造也必须出现在子类构造执行体的第一行,所以this调用和super调用不会同时出现。
例子:
class Creature
{
public Creature()
{
System.out.println("Creature无参数的构造方法");
}
}
class Animals extends Creature
{
public Animals(String name)
{
System.out.println("Animals带一个参数的构造方法,该动物的name为:"+name);
}
public Animals(String name,int age)
{
this(name);
System.out.println("Animals带两个参数的构造方法,该动物的age为:"+age);
}
}
public class Wolf extends Animals
{
public Wolf()
{
super("土狼",3);
System.out.println("Wolf无参数的构造方法");
}
public static void main(String[] args)
{
new Wolf();
}
}