为什么我们不修改“ public”就不能实现从接口到抽象类的方法?

时间:2019-02-21 10:09:18

标签: java interface abstract-class access-modifiers

界面:

interface MasterPlan{
    void getRate();
}

抽象类:

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

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

public abstract void getRate();

这是正常现象。

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

2 个答案:

答案 0 :(得分:0)

您正面临着Interface中每个方法都是public的问题。因此,如果您有一个实现abstract的{​​{1}}类,则其中的方法是Interface。您无法更改已定义方法的可见性。

答案 1 :(得分:0)

  

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

接口具有具有隐式属性的方法,并且一旦在定义或实现该方法后对其进行声明,就无法更改其访问修饰符。

否则您可以将您的课程声明为私有,受保护等。

oracle document defining interfaces

您可以寻求更多渴望的帮助。