When a non-public method is inherited from by a class that implements an interface that defines the same method, that method must be overridden to lift the visibility to
public. Therefore, the inherited method can not be the target of a virtual call anymore. Therefore, it should not be returned by Project.instanceMethods for interfaces/abstract classes that inherit it without overriding it.
This currently happens for
java.text.AttributedCharacterIterator that inherits
protected Object clone() from
java.lang.Object but implementors of AttributedCharacterIterator must override it because that extends
java.text.CharacterIterator that defines
(public) Object clone().