在接口java中重写方法

Moa*_*iya 4 java netbeans

我用Java编写了一个接口.之后,我尝试通过覆盖来实现它,如代码中所示.但我得到错误,我必须在方法之前添加公共.

为什么我要公开?为什么没有公开它不起作用?

正如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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Xab*_*ter 8

接口中的所有方法都是公共的.

没有可见性修饰符的类中的所有方法都是包私有的.

您无法将公共方法的可见性降低到package-private,因为它违反了接口.