【发布时间】:2014-08-06 12:58:53
【问题描述】:
我用 Java 写了一个接口。 之后,我尝试通过覆盖来实现它,如代码所示。 但我收到错误,我必须在方法之前添加 public。
为什么我必须添加 public ?为什么没有公开它不起作用?
正如 Net-Beans 所说:“试图分配较弱的访问权限;是公开的”
代码:
package tryinginterface;
interface Bicycle {
// wheel revolutions per minute
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
class ACMEBicycle implements Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
@Override
void changeCadence(int newValue) {
cadence = newValue;
}
@Override
void changeGear(int newValue) {
gear = newValue;
}
@Override
void speedUp(int increment) {
speed = speed + increment;
}
@Override
void applyBrakes(int decrement) {
speed = speed - decrement;
}
@Override
void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}
【问题讨论】:
-
@jhobbie:不这么认为。这是关于类和接口之间隐式可见性之间的差异,而不是各种可见性级别的定义。