Java interfaces reduction in visibility, only NOT
class-visibility, interface, java
Solution
By default interface's method is `public`, but you reduce it to default visibility, which is package level visibility.
So the following two block of code are the same:
interface QueryBuilderPart {
StringBuilder toStringBuilder();
}
interface QueryBuilderPart {
public abstract StringBuilder toStringBuilder();
}
Note that interface's method is `abstract` as well
So you should do as following:
public class Stupid implements QueryBuilderPart {
@Override
public StringBuilder toStringBuilder() {
return null;
}
}
Problem
Possible Duplicate: Reduce visibility when implementing interface in Java I must be missing something obvious, but i am getting: Cannot reduce the visibility of the inherited method And I don't see how. This is my interface: ``` interface QueryBuilderPart { StringBuilder toStringBuilder(); } ``` And this is my implementation: ``` public class Stupid implements QueryBuilderPart { @Override StringBuilder toStringBuilder() { return null; } } ``` Both the class and the implementation are in the same package. Any Ideas?