qiitaの記事にて、クラスの概念について勉強していたのですが、こちらのリンク先「5、継承」について、お聞きしたいことがあります。
以下はリンク先記事に掲載されていたコードになります。
swift
1// Monsterクラス 2class Monster { 3 var name: String 4 var level: Int 5 6 init(name: String, level: Int) { 7 self.name = name 8 self.level = level 9 } 10 11 func attackMonster(enemy: Monster) { 12 print("(self.name)は(enemy.name)を攻撃した。"); 13 } 14} 15 16/* Slimeクラス(Monsterクラスを継承) */ 17class Slime: Monster { 18 func escapeFromMonster(enemy: Monster) { 19 print("(self.name)は(enemy.name)から逃げた。"); 20 } 21} 22 23let monster = Monster(name: "モンスター", level:3) 24let slime = Slime(name: "スライム", level:2) 25monster.atackMonster(slime) // モンスターはスライムを攻撃した。 26slime.atackMonster(monster) // スライムはモンスターを攻撃した。 27slime.escapeFromMonster(monster) // スライムはモンスターから逃げた
こちらのコードの func attackMonster(enemy: Monster) {print ("(self.name)は(enemy.name)を攻撃した。");}
ここの部分なのですが、「attackMonster」の引数に「Monster」とあるのですがこちらは、Monsteクラスであることを表しているのでしょうか?
しかし、そうだとすると、「enemy.name」は「self.name」でも良い気がします。
こちらの部分について、関数について検索するなどし調べたのですがいまいち分かりませんでした。
今回の疑問点につきまして、アドバイス頂けましたら幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/27 04:24 編集
2019/10/27 04:56
2019/10/27 04:58 編集