■ TCatA を継承するということ
一見すると上の図と同じような印象を受けるかもしれませんが、これは Unit2 のソースです。
よーく見てみましょう。
さっきは class に TImage と書いてありました。
今度は TCatA と書いてあります。
■ これが重要!
どうでしょう?
なんとなく分かってきましたか?
そうです、フォーム上でボタンを押したとき( MainUnit のソースを見てみよう)、
何も記述していなかったはずの CatB.ShowImage が呼びだされたのには、実はここに秘密があるのです。
上で書いたように、class とは、"〜のすべての能力を使うぞ" という意味です。
つまり Unit2 もここで TCatA ( Unit1 )を使うと宣言していた為に、
わざわざ ShowImage というメソッドを記述する必要もなく、Unit1の能力を使用出来ていたのですね。
■ Unit2 の継承
Unit3 についても同じような手順でソースを解析することができます。
ソースを見てみましょう。
■ TCatB の継承
どうですか?
Unit2 とまったく同じになっていますね。
type では、"TCatB を使用する" との記述がなされています。
フォーム上で CatC ボタンをクリックしたイベントには、ShowImage というモジュールを参照する記述と、Timer を動かす命令しか書かれていません。
この3匹目のネコはクリックした時に鳴きます。
これは言うまでもなく、"class で TCatB を使用する" と宣言したからなのです。