但是如果我没有运行子类的构造函数,也就是我把Student s= new Student();及其以后的句子注释掉,main函数里只有Person的对象new Person("小明",21),以及p.getInfo();函数,还是会出现同样的错误。这是为什么

解决方案 »

  1.   

    是我没说清楚,我把父类的无参构造器也注释掉了Pulic person(),成了这个样子:class Person
    {
    public String name;
    public int age;
    public Person(String name,int age)
    {
    this.name =name ;
    this.age=age;
    }

    public void getInfo()
    {
    System.out.println(name);
    System.out.println(age);
    }
    }
    class Student extends Person
    {
    public void study()
    {
    System.out.println("Studding");
    }
    public static void main(String [] args)
    {
    Person p= new Person("小明",21);

    p.getInfo(); }
    }
      

  2.   

    class Person{
    public String name;
    public int age;
    public Person(String name,int age){
    this.name=name;
    this.age=age;
    }
    public void getInfo(){
    System.out.println(name);
    System.out.println(age);
    }
    }
    class Student extends Person{
    public Student(String name,int age){
    //调用父类构造器
    super(name,age);
    }
    public void study(){
    System.out.println("学习");
    }
    public static void main(String[] args){
    Person p=new Person("小米",21);
    p.getInfo();
    Student c=new Student("小兰",20);
    c.getInfo();
    c.study();
    }
    }