class Person
{
String name;
int age;
Person()
{
}
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class Student extends Person
{
String name;
int age;
Student(String name,int age)
{
this.name = name;
this.age = age;
}
}
public class PersonDemo {
public static void main(String[] args)
{
Person p = new Person("zhangsn",17);
Student s = new Student("stu1",89);
//System.out.println(p.getName()+"..."+p.getAge());
System.out.println(s.getName()+"..."+s.getAge());
}
}
为什么输出结果是
null...0
子类不是继承了父类的方法吗
当然没有赋值,你只是给子类赋值了。又没有调用super,根本就没有走父类的构造方法,怎么会赋值
getName是get的父类的name属性,你父类的name又没有赋值,值是赋到student的name上了。
你把Student的name和age属性都删掉,在构造方法用个super,就能取到值了
在new Person(“张三”,17)中不是给父类赋值了吗,新手搞不懂,请高手多指教指教
class Person
{
String name;
int age;
Person()
{
}
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class Student extends Person
{
String name;
int age;
Student(String name,int age)
{
this.name = name;
this.age = age;
}
}
public class PersonDemo {
public static void main(String[] args)
{
Person p = new Person("zhangsn",17);
Student s = new Student("stu1",89);
System.out.println(p.getName()+"..."+p.getAge());
System.out.println(s.name+"..."+s.age);
}
}
输出结果
zhangsn...17
stu1...89