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