We know all methods in an Interface are public and abstract by default.So if have a Interface
Interface X{
void test();
void run();
}
And a class implementing that Interface
Class A implements X{
void test(){...
void run(){....
//Now the function definations will give an error as here we have made the scope of test and run default but in parent Interface it was public.So we have reducedthe scope.But the rule in java is in a child class we can never reduce the scope we can keep it same or we can increase it i.e if in a parent class scope is protected.we can make it public .
So we have to use the keyword public before the above two methods.
}