繁体   English   中英

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

[英]why we can't implement methods from interface to abstract class, without modifying “public”?

接口:

interface MasterPlan{
    void getRate();
}

抽象类:

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

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

public abstract void getRate();

这是正常行为。

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

您面对的是Interface中的每个方法都是public 因此,如果您有一个实现Interfaceabstract类,则其中的方法是public 您无法更改已定义方法的可见性。

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

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

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

oracle文档定义接口

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM