2013-04-02 5 views
-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); 
} 
} 

и мы должны переопределить метод печати в этом классе здесь расширяющий класс 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

+2

Определите, что «не работает». Что он сделал и чего вы ожидали? – EJP

+0

Я ожидал, что он сможет распечатать имя/возраст из класса Person – user2163240

+0

По умолчанию любой метод в подклассе, который имеет то же имя * и * тип метода в суперклассе, переопределяет этот метод. Я рекомендую вам (необязательно, но желательно) добавить аннотацию '@ Override' к методу подкласса. Это сказало ... Что значит «не работает»? – Barranka

ответ

4

Чтобы воспользоваться функциональностью суперкласса, вы правильно звоните по номеру super.print();. Переменные name и age составляют private в Person. Но вам больше не нужно печатать имя и возраст; вызов метода суперкласса уже позаботится об этом. Для GPA вам нужен только один оператор System.out.println.

+0

Ничего себе, спасибо, что имеет большой смысл! – user2163240

+0

^^ Это сработало спасибо – user2163240

Смежные вопросы