我正在製作一個學生數據庫應用程序,它有不同類型的學生來練習繼承並體驗其他OO原則。Netbeans拋出有關超級構造函數的錯誤
我有幾個類從超級「學生」類繼承。問題是我無法讓子類重載構造函數。
Netbeans對於Student構造函數顯然很好,但它告訴我在子類中在超類中找不到合適的構造函數。僅此而已,我完全困惑。
這是迄今爲止代碼:
class MyDB {
public abstract class Student {
//Variable declaration
//
public String firstName;
public String lastName;
public int studentID;
public float gpa;
public String status;
public String mentor;
//Constructor & overloaded constructors
//
public Student(String fn, String ln, int ID, float sgpa, String stat, String m) {
firstName = fn;
lastName = ln;
studentID = ID;
gpa = sgpa;
status = stat;
mentor = m;
}
public Student(String fn, String ln) {
this(fn, ln, 0, 0, "", "");
}
//Class Methods
//
public abstract float calculateTuition(String status, float numberOfCreditHours);
//Tuition is Calculated
/*
if(status == "resident") {
if(undergraduate) {
if(tuition) {
return numberOfCreditHours * 200;
} else {
return numberOfCreditHours * 250;
}
} else {
return numberOfCreditHours * 300;
}
} else {
if(undergraduate) {
if(tuition) {
return numberOfCreditHours * 400;
} else {
return numberOfCreditHours * 450;
}
} else {
return numberOfCreditHours * 350;
}
}
*/
public abstract void update();
//Database entry is updated
public abstract void add();
//Database entry for student is created
public abstract void delete();
//Database entry for student is deleted
public abstract void query();
//Query to DB is made, then info is returned to the screen
}
public class Undergraduate extends Student {
private String level;
private final String m;
public String getLevel() {
return level;
}
public void setLevel(String newLevel) {
level = newLevel;
}
//Overloaded Constructor
public Undergraduate(String newlevel, String fn, String ln, int ID, float sgpa, String stat, String m) {
}
@Override
public float calculateTuition(String status, float numberOfCreditHours) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void update() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void add() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void delete() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void query() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
public class Graduate extends Student {
private String thesisTitle;
private String thesisAdvisor;
public String getThesisTitle() {
return thesisTitle;
}
public String getThesisAdvisor() {
return thesisAdvisor;
}
public void setThesisTitle(String newThesisTitle) {
thesisTitle = newThesisTitle;
}
public void setThesisAdvisor(String newThesisAdvisor) {
thesisAdvisor = newThesisAdvisor;
}
//Overloaded Constructor
@Override
public float calculateTuition(String status, float numberOfCreditHours) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void update() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void add() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void delete() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void query() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
public class PartTime extends Student {
private String company;
//Name of sponsoring employer
public String getCompany() {
return company;
}
public void setCompany(String newCompany) {
company = newCompany;
}
//Overloaded Constructor
@Override
public float calculateTuition(String status, float numberOfCreditHours) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void update() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void add() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void delete() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void query() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
public static void main(String[] args) {
}
}
請忽略覆蓋報表。他們看起來很亂,因爲我讓netbeans自動執行任何想要擺脫錯誤的操作。
應用程序還有更多工作要做,但現在問題出現在構造函數中。
我已經檢查過的教程和問題通常涉及重寫相同類的構造函數或不覆蓋構造函數的子類。
編譯錯誤*被打印,*不被「拋出」。引發異常。 – EJP