关于super关键字以及子类与父类构造函数之间的关系
显示调用父类构造方法——用super(); 若显示调用,必须将super()方法写在最前面; 若不显示调用,则要求父类必须写了‘无参构造函数’,系统会自动调用,否则报错“实际参数列表和形式参数列表长度不同”。 而如果父类中只有参构造而没有无参构造时,在子类中必须对父类的有参构造进行显式调用,因为子类成员初始化之前会对父类成员进行初始化. 也就是说,若子类构造第一行代码没有调用父类构造,也没有调用子类构造,则默认调用父类无参构造,但父类中若没有无参构造,那只能在子类中显式调用出来,不然,父类成员变量无法进行初始化,子类无法使用。 public static void main(String[] args)
{
//Cat cat1 = new Cat(); //提示“实际参数列表和形式参数列表长度不同”的错误
Cat cat2 = new Cat("波斯");
Wolf wolf1 = new Wolf();
Wolf wolf2 = new Wolf("蒙古狼");
Tiger
共有 0 条评论