Swift による iOS 開発入門

ホーム > Swift のクラスと構造体 > 継承

継承

ここでは継承 (inheritance) について説明します。

オブジェクト指向言語のクラス定義では、非常に重要な考え方です。

Swift に特化した話ではないですが念のため、「継承とは何か」 ということを説明しておきます。

継承というのはあるクラスが他のクラスの属性を引き継ぐことをいいます。

例えば、人 (Person) というクラスがあったとします。

そこで、従業員 (Employee) というクラスを新たに定義したいとします。

「従業員は人」ですから、従業員も人としての性質を持っていてしかるべきですね。

この場合、新たに Employee クラスを定義するなら、既存の Person クラスを利用して、プログラムが作れたらありがたいですね。 テスト済みのコードを再利用できたら生産性があります。

このようなとき、Person クラスから Employee クラスを継承します。これによって Person クラスの性質を引き継ぎ、さらに Employee クラスとして必要な 属性(例えば会社名など)を保持できるようにすれば良いわけです。

このとき、Employee に対する Person のように、より広い概念を指すほうのクラスを、スーパークラス (superclass) とか基底クラスといいます。

具体的なコードを記述するのは、イニシャライザなどのルールを理解している必要があるので、 大まかなルールだけここで説明しておきます。

継承するには次のようにします。

class クラス : スーパークラス {
}

同様の意味の動作でも、継承したクラスでは、異なる関数を定義したい場合もあります。

その場合は、override という修飾子をつけてメソッドを定義します。

もし、継承したクラスでオーバーライドをされるのを防ぎたい場合は、final 修飾子をつけます。

ここでは無理に final のメソッドを override しようとしてエラーが発生している様子が確認できます。

ホーム > Swift のクラスと構造体 > 継承