是一道笔试题目,在写的时候没有太注意,有点太大意啦
class Parent{
private String name="A";
public Parent() {
show();
System.out.println("parent");
}
public void show(){
System.out.println("A:"+name);
}
}
public class TestPracticeing extends Parent{
private String name="B";
public TestPracticeing() {
show();
System.out.println("Children");
}
public void show(){
System.out.println("B:"+name);
}
public static void main(String[] args) {
new TestPracticeing();
}
}
这道题目考的知识点有关于继承的知识,关于String类型的字符串的存储问题的。 题目解析如下所示 首先是对子类进行实例化,则必定要加载父类的构造函数的,而在父类的构造函数中有show()方法,而子类中有父类的show的重写,则必定要执行的是子类的重写的方法show()方法。若要输出name的值,在进行实例化的时候,此时子类还未构造,所以变量name的值为null,再之后,调用完构造方法后,进行 父类子类中访问成员变量的规则 直接通过子类对象访问成员变量 规则:等号左边时谁,就优先用谁,没有则向上找 间接通过成员方法访问成员变量 规则:该方法属于谁,就优先用谁,没有就向上找
先成员变量再构造方法,先父类再子类 多态表现:有同名方法执行子类的
结果为: B:null B:B
|