クラスの継承の利用

クラスの継承の考え方を利用すると、 新しいアプレットの開発がさらに簡単になります。


全てのアプレットのクラスは、クラス Appletから作られます。 クラス Appletには既に多くの機能が組み込まれていて、 その機能をそっくり利用できました。 皆さんが行うべきことは、新しい機能を追加することだけでした。
しかしアプレットが複雑になってくると、 それにつれて追加する機能もだんだん増えてきます。 そんな場合は、いっぺんに Appletクラスから新しいクラスを作るのではなく、 今までに開発したクラスを元にすることも可能です。
つまり、 親から子へと次々情報が受け渡し少しずつ「進化」させていくわけです。 より基本的で広く役に立ちそうなクラスを用意して 開発の効率を上げることもできるし、 アプレットをだんだんバージョン・アップさせるような開発の方法も実現できます。

実例で見てみましょう。 前回紹介したアプレット Canvasクラス を、まず用意しておきましょう。 このアプレットは、マウスのイベント処理や 画面の書き換えの関数を新しく追加して、 マウスで絵を描く機能を実現しています。
さて、この絵を描く機能はそっくり受け継いで、 キャンバスの色だけを別の色にする新しいアプレットを作ります。 それには次のようにするだけです。


import Canvas;
import awt.Graphics;
import awt.Color;

class YellowCanvas extends Canvas {

       public void paint( Graphics g ) {

             g.setForeground( Color.yellow );
             g.paint3DRect( 0, 0, 600, 400, true, true );
       }
}

秘密は import Canvas; extends Canvas の部分にあります。 Applet ではなくクラスCanvas をベースにすることで、 既に作られたイベント処理の機能をそっくり受け継ぐことができたわけです。 このおかげでプログラムが驚くほど簡単になっています。 新しく書き直したのは、 最初にキャンバスの色を指定して塗りつぶしている部分だけです。 (この例のように、新しく書き換えた関数の機能は、 新しいものに置き換わります。)