We cannot declare abstract methods in interface as protected and default (even if we don’t mention any access specifier (default) compiler takes it as public)
but we can declare abstract method in abstract class as protected and default.
Why there are different rules for abstract class and interface?
the purpose of Interface is to just declare contract. your client will implement it and for that it must be
public.also field in interface are
publicstaticfinalby default,public you got ,static because it can’t be instantiated without implementation and it must not be inherited also.
Update:
as per your question