On Thu, Jun 01, 2006 at 03:57:08AM +0900, Alexandru Popescu wrote:
> At least in Java these modifiers are quite usefull: a protected method
> is one that offers extensibility/polymorphic behavior for hierarchies,
> without exposing it as public API. So the behavior may vary according
> to the implementation, and the exposed API/public methods are a
> completely different thing.

That's only true if you also find some way to stop the "public" from
inheriting from your base classes too, and I cann't think of any language
that allows you to do that. 

Protected methods *are* part of the public API anyway - might as 
well admit it and make them public and put a big disclaimer in the 
docs. 

Joost.