This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
A "protected" method can only be called by subclasses of the defining class, or other methods in the same package. It's not perfect, but here it's being used to suggest that it's OK (actually encouraged) for you to call super.finalize() when you're overriding finalize(), but you shouldn't ever need to call finalize() on some other object. Only the garbage collector is supposed to call it. The "protected" therefore prevents you from making calls you shouldn't make.