Swiftを勉強中なので、プログラミングの例によく使われる動物クラス(Class Animal)から、人間クラス(Class Human)まで継承していくオブジェクト指向を簡単に書いてみました!
スーパークラス(親クラス) Animal
1 2 3 4 5 |
class Animal { func breathe() { print("Breathe!") } } |
まずは1番親になるスーパークラスのAnimalクラス。
すべての動物に共通するメソッド(breathe())を持っています。
Animalクラスをインスタンス化
1 2 3 4 |
let animal = Animal() animal.breathe() // Breathe! |
Animalクラスをインスタンス化して、breatheメソッドを使うとBreathe!とログに表示されます。
Animalを継承した子クラス Mammal
1 2 3 4 5 |
class Mammal : Animal { func walk() { print("tekuteku") } } |
次にAnimalクラスを継承したMammalクラスを作ります。
MammalクラスはAnimalクラスが持つメソッドを継承し、更にwalk()というメソッドを保有しています。
Mammalクラスをインスタンス化
1 2 3 4 5 6 |
let mammal = Mammal() mammal.breathe() // Breathe! mammal.walk() // tekuteku |
Mammalクラスをインスタンス化すると、AnimalクラスとMammalクラスのメソッドが使えるため、
- breatheメソッド
- walkメソッド
の2つが使えるようになります。
Animalを継承したHumanクラス
1 2 3 4 5 |
class Human : Mammal { func talk() { print("わああ") } } |
最後に、Mammalクラスを継承したHumanクラス。
話せるようになりました。
Humanクラスは、Animalクラスを継承したMammalクラスを継承しているため、
- Animalクラス
- Mammalクラス
- Humanクラス
すべてのメソッドを使用することができます。
Humanクラスをインスタンス化
1 2 3 4 5 6 7 8 |
let human = Human() human.breathe() // Breathe! human.walk() // tekuteku human.talk() // わああ |
このように、すべてのメソッドが使えます。
基本だけど大事
ここまで簡単なオブジェクト指向を実践で使うことはないですが、基本概念がわかっていないと実際にプロダクトを作っている最中に理解が出来ません。
オブジェクト指向の本や情報はたくさんありますので、興味がありましたら、色々調べてみてください!