Object-Orientation Abusers.
Alternative Classes with Different Interfaces
Two classes perform identical functions but have different method names.
Refused Bequest
If a subclass uses only some of the methods and properties inherited from its parents, the hierarchy is off-kilter. The unneeded methods may simply go unused or be redefined and give off exceptions.
Switch Statements
You have a complex switch operator or sequence of if statements.
Temporary Field
Temporary fields get their values (and thus are needed by objects) only under certain circumstances. Outside of these circumstances, they’re empty.