关于继承问题

public class JiCheng {


public static void main(String[] args) {
new Person();
new Student1();

}

}
class Person{
private String color;
public Person(){
this.color = "red";
printColor();

}
public void printColor(){
System.out.println("Person的颜色为:"+color);
}
}
class Student1 extends Person{
private String color;
public Student1(){
this.color = "blue";

}
public void printColor(){
System.out.println("Student的颜色为:"+color);
}
}

 

 

第一行:Person red
第二行:Student       null
这个题出的很不错,考点是子类对父类方法的重写!创建父类对象就不说了,应该都明白。在创建子类对象时候,先执行父类构造器,再执行子类构造器,执行父类构造器的时候,当运行到print方法时会跳到子类的print方法(因为方法重写的原因),这时候还没有执行子类构造器,也就没对子类的color进行初始化,默认为null。所以第二行打印的color为null。

posted @ 2016-06-17 17:11  小程序员大梦想  阅读(144)  评论(0)    收藏  举报