libro
www.tuyano.com
初心者のためのSwiftプログラミング入門

クラスを更に極める (1/4)

作成:2014-09-13 10:18
更新:2014-09-13 10:18

■継承について

前回、クラスの基本について説明しましたが、クラスにはまだまだ知っておくべき事柄があります。それらから重要なものをピックアップして説明しましょう。まずは「継承」からです。

継承は、オブジェクト指向の最も重要な機能です。これは、既存のクラスの機能を全て受け継いで新しいクラスを作成する機能です。継承して作られたクラスでは、継承元にあるすべてのプロパティとメソッドがそのまま利用できるようになります。

継承元となるクラスを「スーパークラス」、継承して新たに作ったクラスを「サブクラス」といいます。サブクラスからは、スーパークラスの全機能が使える、ということですね。

この継承を利用する場合には、以下のようにクラスを記述します。
class クラス : スーパークラス {
    ……クラスの内容……
}
クラス名の後にコロンを付け、その後に継承するクラス(スーパークラス)を記述します。たったこれだけで、継承元のクラスにあるすべての機能がそのまま利用できる新クラス(サブクラス)が作れます。

下のリスト欄に、継承のサンプルを挙げておきましょう。ここでは、Friendクラスを継承し、BestFriendクラスを作っています。見ればわかるように、BestFriendではnameプロパティはありませんが、問題なく動きます。スーパークラスのFriendnameがあるため、BestFriendにもあるように機能するのです。

●スーパークラスのメソッド呼び出し
BestFriendのイニシャライザでは「super.init(name:name)」という文がありますが、この「super」は、スーパークラスを示すキーワードです。こうすることで、スーパークラスであるFriendのイニシャライザを呼び出しているのですね。スーパークラスにあるメソッドは、すべてこのように「super.〇〇」という形で呼び出すことができます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

class Friend {
    var name:String
    
    init(name:String) {
        self.name = name
    }
}

class BestFriend : Friend {
    var age:Int
    
    init(name:String, age:Int) {
        self.age = age
        super.init(name:name)
    }
    
}

var you = BestFriend(name: "Taro", age: 30)
println("\(you.name) (\(you.age))")

※関連コンテンツ

「初心者のためのSwiftプログラミング入門」に戻る