为什么我只能在 java 接口中定义默认方法和静态方法?

Why can I define only default and static methods inside a java interface?

为什么我只能在 java 接口中定义默认方法和静态方法,而不能使用其他访问修饰符,如 protected 和 public 比默认方法具有更多权限?

interface int1
{

     default void add(int a, int b)
    {

    }
    static void sub(int a, int b)
    {

    }

}
interface int1
{

    public void add(int a, int b)
    {

    }
    protected void sub(int a, int b)
    {

    }

}

--编译时显示错误信息"Abstract methods do not specify a body"

我们在接口中使用默认方法的原因是允许开发人员向接口添加新方法而不影响实现这些接口的类。 这里是 link 完整文章。