java继承多态调用异常情况

来源:互联网 发布:qq游戏网络不稳定 编辑:程序博客网 时间:2024/06/05 02:35

本人热爱java,但是最近深度研究发现调用最终为空,请大神帮忙解析

class Person{
public String name="P";
public int age;
Person(){
//System.out.println("睡觉");
this.doWork ();
// System.out.println(name+" "+age);
}
public void doWork(){
System.out.println("工作");
}
}
class Teacher extends Person{
public String name="T";
// Teacher(){

// super.doWork();
//}
//public Teacher(String name){
//this.name = name; //隐藏了其父类字段 写入其子类,若子类没有直接写入到其父类
//this.age = age;
//}
}
class A extends Teacher {
public String name="A";
public int age;
A(){
//super()
//System.out.println(name);
}
public void doWork(){
System.out.println("你好"+this.name); //
System.out.println("你好"+name); //
System.out.println("你好"+super.name); //
}
}
class Demo911 {
public static void main(String[] args) {
Teacher b =new A();
//System.out.println(b.name);
// b.doWork();

//String x=b.name;
//System.out.println(x);
}
}
/*总结说明:字段不存在多态的说法,对于直接调用查找父父类无该字段直接会报错,
对于查找也会直接去查找其父类的字段内容.若父类无该字段则直接会报错.
若子类没有该字段,会写入(this.name=name)到其父类字段中.
*/

对于玩Java这么久今天才发现一个自己调用会为空的结果时间想不通,请大神们帮忙解析一下:

最终输出的结果是:

你好null
你好null
你好null


0 0
原创粉丝点击