明确调用父类指定构造方法
class Person
{
private String name;//姓名
private int age;//年龄
public Person(String name,int age){
this.name = name;
this.age = age;
}
}
class Student extends Person//Student类继承父类
{
private String school;//学校
public Student(String name,int age,String school){//子类方法构造
super(name,age);//明确明确调用父类有构造方法
this.school = school;
}
}
public class javaDemo
{
public static void main(String[] args){
Student stu = new Student("张三",18,"吉首大学");//实例化子类对象
}
}
本程序Person父类不再明确提供无参构造方法,这样必须通过super()明确调用的父类构造方法
那么有没有不让子类去调用父类构造方法的情况?
所以
class A{
public A (String msg){
System.out.println(msg);
}
}
class B extends A{
public B(String msg){
this("hh",10);
}
public B(String msg,int age){
this(msg);
}
}
public class Test{
public static void main(String[] args){
B b = new B("jj",18);
}
}
但结果是编译错误的,就像父母一定比我们先出生,在程序中,子类出生前父类一点要实例化。