父类与子类的继承问题

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