2
我完成每一條說明,下面的代碼爲家庭作業:在枚舉爲什麼我不能覆蓋一個公共抽象方法
public enum AccountType {
Checking {
@Override
String acctType() { return "Checking Account"; }
},
Savings {
@Override
String acctType() { return "Saving Account"; }
},
CreditCard {
@Override
String acctType() { return "Credit Card Account"; }
};
abstract String acctType();
}
最初,但是,我試圖做的:public abstract String acctType();
並取得了以下每個的覆蓋方法錯誤:
stringValue() in cannot override stringValue() in AccountType;
attempting to assign weaker access privileges;
was public
所以我的問題是怎麼回事與public
修改的抽象方法?枚舉本身被宣佈爲公共類,所以我不明白指定較弱的訪問權限當應該似乎是public
。
這明確標記爲一個家庭作業問題 - 你不應該提供一個提示或至少一個解釋,而不是一個完整的解決方案嗎? – Caspar 2012-07-18 01:49:42
@Caspar要清楚的是,上面的代碼來自我已經完成的作業任務......我只是好奇爲什麼我正在經歷這種行爲。我將它標記爲家庭作業,因爲它是作業的一部分,並且它不是真正的代碼*任務關鍵* – 2012-07-18 01:52:50
@DonRoby感謝編輯和解釋。這清除了一點。我沒有想到將重寫的方法聲明爲抽象。 – 2012-07-18 01:55:34