class person
{
String name;
public person(String name)
{
this.name=name;
}
public void work()
{
System.out.println(name+" 的工作是劳动");
}
}class teacher extends person
{
String name;
public teacher(String name)
{
super(name);
} public void work()
{
System.out.println(name+" 的工作是教育学生");
}
}
class student extends person
{
String name;
public student(String name)
{
super(name);
}
public void work()
{
System.out.println(name+" 的工作是学习");
}
}public class abc {
public static void main(String args[])
{
person p1=new person("张三");
teacher t1=new teacher("李四");
student s1=new student("王五");
p1.work();
t1.work();
s1.work();
}
}
本来想得到的是 张三的工作是劳动,李四的工作是教育学生,王五的工作是学习
但得到的结果是 张三的工作是劳动,null的工作是教育学生,null的工作是学习
请问是什么原因
{
String name;
public person(String name)
{
this.name=name;
}
public void work()
{
System.out.println(name+" 的工作是劳动");
}
}class teacher extends person
{
String name;
public teacher(String name)
{
super(name);
} public void work()
{
System.out.println(name+" 的工作是教育学生");
}
}
class student extends person
{
String name;
public student(String name)
{
super(name);
}
public void work()
{
System.out.println(name+" 的工作是学习");
}
}public class abc {
public static void main(String args[])
{
person p1=new person("张三");
teacher t1=new teacher("李四");
student s1=new student("王五");
p1.work();
t1.work();
s1.work();
}
}
本来想得到的是 张三的工作是劳动,李四的工作是教育学生,王五的工作是学习
但得到的结果是 张三的工作是劳动,null的工作是教育学生,null的工作是学习
请问是什么原因
student s1=new student("王五");
你这样只是给父类的name设初值了,你的teacher中的变量name这时并没有值,所以就默认null
另一个student也是一样class teacher extends person
{
String name;
public teacher(String name)
{
super(name);
} public void work()
{
System.out.println(super.name+" 的工作是教育学生");
} }
class student extends person
{
String name;
public student(String name)
{
super(name);
} public void work()
{
System.out.println(super.name+" 的工作是学习");
}
}