在构造方法时虚方法的调用出现错误!--为什么此时的school尚未赋值??
class ConstructInvokeMetamorph{
public static void main(String[] args){
Person s=new Person("Liming",18);
Student p=new Student("Liming",18,"beida");
}
}
class Person{
String name="noname";
int age=-1;
Person(String name,int age){
this.name=name;this.age=age;
sayHello();
}
void sayHello(){
System.out.println("I am a man,and my name is"+this.name+".My age is "+this.age);
}
}
class Student extends Person{
String school="noschool";
Student(String name,int age,String school){
super(name,age);
this.school=school;
}
void sayHello(){
System.out.println("I'm a student,and my name is"+this.name+".My age is "+this.age+
",and my school is "+this.school);
}
}
我预想的结果是:
I am a man,and my name is Liming.My age is 18.
I'm a student,and my name is Liming.My age is 18,and my school is beida
但是结果是:
I am a man,and my name is Liming.My age is 18.
I'm a student,and my name is Liming.My age is 18,and my school is null
程序中哪里出现了错误?好像是方法的调用时,school尚未赋值,请问这是怎么回事?它怎样才能赋值,这个程序的执行过程是怎么样?请高手不吝赐教!!