-2

这是课堂作业。我们得到这个代码:

public class Person {
private String name;
private int age;

public Person(String n, int a)
{
this.name = n;
this.age = a;
}
public String getName()
{
return name;
}

public int getAge()
{
return age;
}

public void setName(String n)
{
name = n;
}

public void setAge(int a)
{
age = a;
}

public void print( )
{
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}

我们必须在这里覆盖这个类中的 print 方法,它扩展了 Person 类:

public class CollegeKid extends Person
{
private double gpa;


 public double getGPA()
{
 return gpa;
}

public void setGPA(double g)
{
  gpa = g;
}

public void print( )
{/* your code here */
  }
}

对第一个代码的格式感到抱歉。

我试着写

public void print(){
super.print();
SOP("Name " + name);
SOP("Age " + age);
SOP("GPA " + gpa);}

但这没有用..

这是我得到的编译错误:编译错误(第 2 行,第 31 列):名称在继承中具有私有访问权限 I.Person 编译错误(第 3 行,第 30 列):年龄在继承中具有私有访问权限 I.Person

4

2 回答 2

4

要利用超类功能,您可以正确调用super.print();. nameage变量privatePerson. _ 但是您不必再次打印姓名和年龄;对超类方法的调用已经解决了这个问题。您只需要一份System.out.printlnGPA 声明。

于 2013-04-02T00:27:22.433 回答
0
CollegeKid kid = new CollegeKid()
kid.set...(...)
kid.print()
于 2013-04-02T00:27:35.530 回答