Bez použití dědičnosti nenapíšeš ani jednu třídu či objekt.
Zajímavé tvrzení, ale zcela mimo. Už jen “struct A { int x }” je typ a dědičnost nikde nepotřebuje. OOP totiž není o dědičnosti.
Ano, je to typ. Je typ třídou nebo objektem?
Fakt, že se denně setkávám s chybně použitou dědičností, vůbec neznamená, že by na dědičnosti samotné bylo něco špatně. Když někdo poruší LSP, tak to samozřejmě špatně je.