2013-09-01 3 views
0

Это код Java с методами наследования и полиморфизма.не может найти символ суперпозиции

Student Class

public abstract class Student 
{ 
    protected long id; 
    protected String name; 
    protected String programCode; 
    protected int part; 

    public Student(){ 
     id=0; 
     name=" "; 
     programCode=" "; 
     part=0; 
    } 

    public void setStudent(long i,String nm,String code,int pt){ 
     id=i; 
     name=nm; 
     programCode=code; 
     part=pt; 
    } 

    public long getId()   {return id;}  
    public String getName()  {return name;}  
    public String getProgramCode() {return programCode;}  
    public int getPart()   {return part;}  
    public abstract double calculateFees(); 

    public String toString(){ 
     return ("ID: "+id+"\nName: "+name+"\nProgram Code: "+programCode+"\nPart: "+part);} 
    } 

FullTimeStudent Класс

public class FullTimeStudent extends Student{ 
    protected String collegeName; 
    protected String roomNumber; 

public FullTimeStudent(){ 
    super(); 
    collegeName=" "; 
    roomNumber=" "; 
}  
public FullTimeStudent(long i,String nm,String code,int pt, 
           String collegeNm,String roomNum){ 
    super(i,nm,code,pt); //can't find symbol here 
    collegeName=collegeNm; 
    roomNumber=roomNum; 
}  
public void setFullTimeStudent(String collegeNm,String roomNum){ 
    collegeName=collegeNm; 
    roomNumber=roomNum; 
}  
public String getCollegeName() {return collegeName;} 
public String getRoomNumber() {return roomNumber;} 

public double calculateFees(){ 
    double fee=0, collegefee=0, totalfee=0; 

    if(programCode.equals("BIT")){ 
     fee=2000; 
    } 
    else if(programCode.equals("BCHE")){ 
     fee=2300; 
    } 
    else if(programCode.equals("BPHY")){ 
     fee=3200; 
    } 
    else if(programCode.equals("BBIO")) 
     fee=2700; 
    } 

    if(collegeName.equals("Jati")){ 
     collegefee=200; 
    } 
    else if(collegeName.equals("Cengal")){ 
     collegefee=350; 
    } 
    else if(collegeName.equals("Dahlis")){ 
     collegefee=420; 

     totalfee=fee+collegefee; 
     return totalfee; 
    } 

public String toString(){ 
    return super.toString()+"\nCollege Name: "+collegeName+"\nRoom Number"+roomNumber; 
} 

}

кажется, что он не может найти символ супер заявления в классе FullTimeStudent .

super(i,nm,code,pt); 
+0

Что вы ожидаете от этой строки? – SLaks

+0

Почему у вас есть метод 'setStudent()' вместо конструктора с теми же параметрами? –

+0

Не имеет смысла иметь публичный конструктор для абстрактного класса - сделать его защищенным. – Bohemian

ответ

1

Как вы пытаетесь сказать, ваш суперкласс не имеет конструктора, который принимает параметры.

1

Изменить способ декларации Student#setStudent к тому, что из перегруженного конструктора, ожидаемого в конструкторе FullTimeStudent

protected Student(long i, String nm, String code, int pt) { 
    id = i; 
    name = nm; 
    programCode = code; 
    part = pt; 
} 

The No-арг конструктор затем может быть упрощен до

protected Student() { 
    this(0, " ", " ", 0); 
} 

(оставлю перевод литеральных значений в предопределенные константы в качестве упражнения)

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

  • Нет связанных вопросов^_^