O'Reilly logo
  • Shayne Riley thinks this is interesting:

The only way to test a class designed for inheritance is to write subclasses. If you omit a crucial protected member, trying to write a subclass will make the omission painfully obvious. Conversely, if several subclasses are written and none uses a protected member, you should probably make it private.


Cover of Effective Java, 2nd Edition


As said later, the subclasses should be written by someone other than the superclass author.