Interface in Java is similar to class but, it contains only abstract methods and fields which are final and static.
If the fields of the interface are private, you cannot access them in the implementing class.
If you try to declare the fields of an interface private, a compile time error is generated saying “modifier private not allowed here”.
In the following Java example, we are trying to declare the field and method of an interface private.
public interface MyInterface{ private static final int num = 10; private abstract void demo(); }
On compiling, the above program generates the following error
MyInterface.java:2: error: modifier private not allowed here private static final int num = 10; ^ MyInterface.java:3: error: modifier private not allowed here private abstract void demo(); ^ 2 errors
In general, the protected fields can be accessed in the same class or, the class inheriting it. But, we do not inherit an interface we will implement it.
Therefore, cannot declare the fields of an interface protected. If you try to do so, a compile time error is generated saying “modifier protected not allowed here”.
In the following Java example, we are trying to declare the field and method of an interface protected.
public interface MyInterface{ protected static final int num = 10; protected abstract void demo(); }
MyInterface.java:2: error: modifier protected not allowed here protected static final int num = 10; ^ MyInterface.java:3: error: modifier protected not allowed here protected abstract void demo();