Это для присвоения класса. Мы получили этот код:Невозможно выяснить, как переопределить метод из суперкласса
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);
}
}
и мы должны переопределить метод печати в этом классе здесь расширяющий класс 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);}
, но это не сработало ..
это ошибка compiltation я получаю: ошибка компиляции (строка 2, столбец 31): название имеет частный доступ в inheritanceI .Person ошибка компиляции (строка 3, столбец 30): возраст имеет личный доступ в наследствоI.Person
Определите, что «не работает». Что он сделал и чего вы ожидали? – EJP
Я ожидал, что он сможет распечатать имя/возраст из класса Person – user2163240
По умолчанию любой метод в подклассе, который имеет то же имя * и * тип метода в суперклассе, переопределяет этот метод. Я рекомендую вам (необязательно, но желательно) добавить аннотацию '@ Override' к методу подкласса. Это сказало ... Что значит «не работает»? – Barranka