It's a throwback to the C line of languages. In Eiffel, for example, there is no real way of hiding methods from your descendants. All you can do is 'freeze' a particular feature. And that is deliberate. Inheritance is after all about the 'is a' relationship. There is no real need to hide methods from classes that are essentially genetically identical to you. If you want encapsulation use delegatation, not inheritance. IMHO one of the problems with static languages is that they elevated the notion of inheritance to a level it was never originally intended for - system correctness - rather than just a nifty shorthand that eliminates a bundle of duplication. NeilW On Dec 29, 1:55 am, "Jeff" <cohen.j... / gmail.com> wrote: > But, the paper focuses (I admit after just a quick scan) only on the > lack of encapsulation an object can exert against subclasses. That's > always been a part of my belief system, too, as I grew up on C++ and > later C#... but now I dare wonder aloud, has that really been all that > important?