C#です。

ただのPublicクラスから、クラスA、クラスB、クラスCと3階層の継承を行っています。
このクラスには、Disposeが必要ですか?
また、Disposeが必要な場合、クラスAには、Finalizeを書きますが、クラスBとクラスCには、Disposeをオーバーライトしないといけませんか?