почему мы не можем реализовать методы от интерфейса к абстрактному классу, не изменяя public? - PullRequest
0 голосов
/ 21 февраля 2019

интерфейс:

interface MasterPlan{
    void getRate();
}

абстрактный класс:

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

В этом случае я не могу реализовать интерфейс MasterPlan без использования модификатора public в методе getRate(),

public abstract void getRate();

это работает с нормальным поведением.

Я знаю, что модификатор по умолчанию default в интерфейсах.в чем причина этой ошибки без модификатора public в реализованном абстрактном классе?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Все абстрактные, стандартные и статические методы в интерфейсе неявно общедоступны.

интерфейс имеет методы, имеющие неявные свойства, и после того, как метод объявлен после этого при его определении или реализацииесли вы не можете изменить его модификатор доступа.

или вы можете объявить свой класс как закрытый, защищенный и т. Д.

оракула, определяющего интерфейсы

, вы можете попросить больше желающих помочь.

0 голосов
/ 21 февраля 2019

Вы сталкиваетесь с тем, что каждый метод в Interface равен public.Так что если у вас есть класс abstract, который реализует Interface, то методы, которые там есть, public.Вы не можете изменить видимость определенного метода.

...