第8回】この記事は2012年10月13日に書かれたものです。内容が古い可能性がありますのでご注意ください。第8回】ここまでクラスの作成などを行ってきましたが、そのクラスの定義のときに書いてる構文を思い出してください。クラス名:スーパクラス」のところですね。クラスを作成するときはあるクラスを継承しますといいました。そこで今回はその継承について説明したいと思います。あるクラスがあったとします。このクラスに存在している機能を利用しつつ、このクラスの機能に何か付け加えたい場合などに新しいクラスを作成しもう一度インスタンス変数やメソッドを定義するのは2度手間です。いって元のクラスに直接機能を付け加えるようなことをしてしまうとそのクラスを使用している他のコードにも影響が出るかもしれません。そこで既存のクラスの機能を引き継ぎつつ、新しいクラスを定義する概念として継承というものがあります。この継承を利用することで、もともとのクラスが持っていた機能を使用できる上に、新たにインスタンス変数やメソッドを追加することができるため、また最初から新しいクラスを作って同じ動作をするメソッドやインスタンス変数などを定義していく必要がありません。このとき、基となるクラスの方を親クラスとかスーパークラスとか言います。init]としてあるsuperというのが親クラスを示しています。継承してできたクラスの方が子クラスとかサブクラスといわれます。継承すればスーパークラスのメソッドが使用できます。前回のコードでいえば、initメソッドをPersonクラスで定義していなくても問題ありません。試しに前回のコードのPersonクラスで実装されている(Person.mの中)initメソッドを全部コメントアウトしても問題なく動きます。親クラスであるObjectクラスの方に実装があるからですね。いえ、エラーがでないだけで前回言ったようにPersonクラスのインスタンスメソッドは初期化されません。いろんなものが継承できるのかというとそうではありません。Objective-Cの場合は、スーパークラスは一つと決まっています。いろんなスーパークラスを継承するクラスは作成できません。Objectクラス、MyTextクラス、TestClassクラスを継承したいということで以下のようなクラス定義をすることは無理ということです。)この記事へのコメントはありません。この記事へのトラックバックはありません。URL返信をキャンセルする。