厳格なabstract

abstract

クラスには次のような特殊なスーパークラスがあります。

一見普通のクラスのように見えますが、11行目のクラス定義に「abstract」が付いています。これはこのクラスが特殊なスーパクラス「abstract」であることを定義しています。

さらに、15行目~16行目にも「abstract」があります。

メソッドの定義のようですが、処理内容が記述されていません。

「abstract」が付いたスーパークラスで、さらに「abstract」が付いたメソッドは、名前や引数等の定義だけ行います。そして、処理内容は強制的にサブクラスで記述させることになります。従って、「abstract」の付いたクラスをサブクラスで継承した場合は、「abstract」の付いたメソッドの処理を記述しないとエラーになってしまうのです。

まるで、指示だけ出す上司や厳格な父親みたいな存在です。しかしこの「abstract」、使いどころがあります。それは後述します。

タイトルとURLをコピーしました