java使用继承需要注意的地方

在构建子类时先构建父类,用到父类的test方法,而子类重写了父类的test方法,所以此时实际调用子类了test方法,而子类test无name属性,所以name为null而非Ok
[code lang="java"]

class TheBase{
public TheBase(){
test();
}

public void test(){ // 一号test
System.out.println("将被子类重写的方法");
}
}

public class TheSub extends TheBase{
private String name="Ok";
public void test(){ // 二号test

//在构建子类时先构建父类,用到父类的test方法,而子类重写了父类的test方法,所以此时实际调用子类了test方法,而子类test无name属性,所以name为null而非Ok
System.out.println("子类重写父类的方法,其name字符串为" + name);
}

public static void main(String[] args){
//下面代码将引发空指针异常
TheSub s=new TheSub();
}
}
[/code]

分类: Java

发表评论

电子邮件地址不会被公开。 必填项已用*标注