In reply to Ryan Hellyer.

Some things do truly need to be private, and there's nothing wrong with making them so as long as you document the reasoning behind it. That way, people reading your code can understand even if they don't agree with you.

What we're trying to prevent is classes that are overly-stingy with access to their members, where child classes can't even display data because they can't access it, for example. It's hard to know everything other programmers will want to do ahead of time, and there's no sense making things difficult for them.