这是课堂作业。我们得到了这段代码:
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列):name在inheritanceI.Person中具有私有访问权限 编译错误(第3行,第30列):age在inheritanceI.Person中具有私有访问权限
答案 0 :(得分:4)
要利用超类功能,请正确调用super.print();
。 name
中的age
和private
变量为Person
。但你不必再打印名字和年龄;对超类方法的调用已经解决了这个问题。 GPA只需要一个System.out.println
语句。
答案 1 :(得分:0)
CollegeKid kid = new CollegeKid()
kid.set...(...)
kid.print()