継承無しのカプセル化だけなら普通のC言語でもできるし、
触ったファイルだけを再コンパイルという基本も狂わない
では継承とは何か
早い話がメンバ変数やメンバ関数のオフセットのことである
これをコンパイル時に決め打ちしてしまうのがよくない
リンク時にまで先送りすべきである

C++もObjective CもJavaも、三者三様にこの問題から逃げた

UNIXとCとアセンブラとリンカはデニスリッチーによってほぼ同時に作られた
そのおかげで保たれていたC言語による開発の快適さだった
同じことをOOPが登場した時に考えるべきだった
30年が経った
事実は変わらない
アセンブラやリンカは今もって構造化プログラミングしか想定していない