интерфейс:
interface MasterPlan{
void getRate();
}
абстрактен клас:
abstract class Plan implements MasterPlan{
abstract void getRate();
} }
В този случай не мога да внедря MasterPlan
интерфейс, без да използвам public
модификатор в getRate()
метод.
public abstract void getRate();
това работи с нормално поведение.
Знам, че модификаторът по подразбиране е default
в интерфейсите. каква е причината за тази грешка без модификатор public
в внедрен абстрактен клас?
private
) модификатор за достъп е само по себе си декларация за достъп: той декларира, че методът има частен достъп до пакета. Това поведение не се променя дори ако декларацията на метода имплементира метод на интерфейс. Така че трябва да напишетеpublic
точно както бихте направили за всеки друг публичен метод. И тъй като прилагате интерфейсен метод, той не трябва да е публичен. - person Kevin Anderson   schedule 21.02.2019