为什么我们不能在不修改"public"的情况下实现从接口到抽象类的方法?



接口:

interface MasterPlan{
    void getRate();
}

抽象类:

abstract class Plan implements MasterPlan{
    abstract void getRate();
} }

在这种情况下,如果不使用getRate()方法中的public修饰符,我无法实现MasterPlan接口。

public abstract void getRate();

这是正常行为。

我知道默认修饰符是接口中的default。在实现的抽象类中没有public修饰符的情况下,此错误的原因是什么?

您正在面对Interface中每种方法都是public。因此,如果您获得了abstract类,该类实现Interface中的public中的方法。您无法更改定义方法的可见性。

接口中的所有抽象,默认和静态方法都是隐含的公开。

接口具有具有隐式属性的方法,并且在定义或实现它后声明该方法后,您将无法更改其访问修饰符。

否则您可以将班级声明为私人,受保护等。

oracle文档定义接口

您可以要求更多渴望提供帮助。

相关内容

最新更新