クラスの継承とは?
新しいクラスを作成する際に、似たようなプロパティやメソッドを持つクラスがあった場合、それを流用するためにクラスの継承を行います。
元になるクラスのプロパティやメソッドを引き継いだまま、さらに追加したいプロパティ・メソッドを定義して使用することが可能です。
鳥🐥とオードリー👦👱♂️の鳴き声(?)で継承を実践
理解のためにplaygroundで継承を実施してみました。
鳥クラスとオードリークラスを用意し、継承元のクラス(鳥クラス)と継承先のクラス(オードリークラス)の違いをみたいと思います。
import UIKit
//鳥クラス
class Bird {
var name = ""
func bark(_ names: String) {
print("🐥:\(names)です!ぴよぴよ!")
print("=========================================================")
}
}
//オードリークラス
class Audrey: Bird{
override func bark(_ names: String) {
print("👱♂️:\(names)です!トゥース!")
}
func wakabayashi(){
print("👦:これスルーでいっちゃいますけれどもね")
print("=========================================================")
}
}
var bird1 = Bird()
bird1.name = "ひよこ"
bird1.bark(bird1.name)
var bird2 = Audrey()
bird2.name = "春日"
bird2.bark(bird2.name)
bird2.wakabayashi()
見事にbird1ではひよこを、bird2ではオードリーを鳴かせることができました。
今回のポイント❗️
・クラスの継承の記述方法
クラスの継承を行うには
class 継承先**: 継承元**{}
というように継承元の記述が必要になります
今回の場合ですと、Audreyクラスの後ろに継承元のBirdクラスを記述しています。
そうすることで若林さんのツッコミメソッドを追加して使用することができます。
//オードリークラス
class Audrey: Bird{
override func bark(_ names: String) {
print("👱♂️:\(names)です!トゥース!")
}
func wakabayashi(){
print("👦:これスルーでいっちゃいますけれどもね")
print("=========================================================")
}
}
・barkメソッドのオーバーライド
override func メソッド名{
変更したい処理内容を記述
}
オードリークラスでbarkメソッドをオーバーライドすることで
鳴き声を変更することができます。
まとめ
継承を使えば基本のインスタンスにどんどんプロパティ・メソッドを追加できる!
継承ってすごい!オードリーっておもしろい!!