You’ve likely never written anything as complex as say… a DOM.
Take the HTML DOM as implemented in browsers.
EventTarget > Node > Element > HTMLElement
And then every single HTML tag getting its own extension of HTMLElement. We have the parent element because in addition to HTMLElement, there’s also SVGElement and a few others.
Much less text nodes, which actually inherit thus:
EventTarget > Node > CharacterData > Text
Though it’s shocking how many people don’t even know about the Node Object, much less EventTarget from which it is extended.
Or even WheelEvent.
Event > UIEvent > MouseEvent > WheelEvent
Much like inherited event nodes in forced OOP RTOS.
NOT that working with such things in C+ is a particular joy — but that’s just my having learned Assembly > Pascal > Ada and having worked with computers for a decade and a half before I had the “joy” of having to use the cryptic C syntax languages that seem to WANT to make the simplest of programming tasks hard and illegible.
Which of course is why languages like Rust and JS seem to be determined to make everything look like brainfuck.