初心者なのですが、クラス関係で質問です。
多いので項目分けして整理しました。

1.オーバーライドという概念がよく分かりません。
これは例えば、自分で新たにAというクラスを作っているときに、
Aの派生元のクラスのメソッドを、Aのために
カスタマイズするためのものと考えていいのでしょうか。

2.また、仮想メソッドという概念が理解できません。
静的、仮想、動的メソッドはどういう違いがあって、
どういうときに使うのでしょうか。

3.1,2に関連して、
例えばAでオーバーライドされるメソッドは
Aの派生元で仮想メソッドとして定義されるのですが、
Aでオーバーライドされないときは
そのメソッドはどういう扱いとなるのでしょうか。
そのメソッドが呼び出されるとAの派生元で
処理されるということでいいのですか?

4-1.Create,DestroyはAで必ず定義しなければならないのでしょうか。
4-2.また、オブジェクト破棄時には
ヘルプによると「Freeを使え」と書かれているのですが、
Destroyをなぜ使ってはいけないのでしょうか。
4-3.またDestroyを使ってはいけないということは
Destroyはなぜ存在するのですか。

ヘルプを読んだり、ネット上を検索したりしてみましたが
初心者の自分には理解が至りませんでした。
項目がたくさんあるのですが、どなたかお願いします。