Composition Over Inheritance
“Composition over inheritance” is one of those rules everyone repeats and few examine. It’s a good rule - one of the few OOP slogans that’s actually right by default. But a slogan you don’t examine is a slogan you’ll misapply, and this one has exactly one honest exception that trips people up. Let me state where the rule holds, why, and the one place it doesn’t - and why pretending the exception isn’t an exception does more harm than the exception itself.