私は書籍からすぐに学び、構造体とクラスの例をタイプしました。しかし、この例はゾンビが呼び出されるたびに人口を減らさないため、このようには機能しません。私はこれが愚かな質問であることを知っていますが、私は理由を理解できません。誰かが何が間違っているのか説明できますか?だからここのコードです:override funcが機能しません
main.swift
import Foundation
var myTown = Town()
myTown.changePopulation(by:500)
let fredTheZombie = Zombie()
fredTheZombie.town = myTown
fredTheZombie.terrorizeTown()
fredTheZombie.town?.printDescription()
myTown.printDescription()
Town.swift
import Foundation
struct Town {
var population = 5422
var numberOfStopLights = 4
func printDescription() {
print("Population: \(myTown.population), number of stoplights: \ . (myTown.numberOfStopLights).")
}
mutating func changePopulation(by amount: Int){
population += amount
}
}
Monster.swift
import Foundation
class Monster{
var town: Town?
var name = "Monster"
func terrorizeTown(){
if town != nil{
print("\(name) is terrorazing a town!")
}
else{
print("\(name) hasn't found a town to terrorize yet...")
}
}
}
Zombie.swift
import Foundation
class Zombie: Monster {
override func terrorizeTown() {
town?.changePopulation(by: -10)
super.terrorizeTown()
}
}
ありがとうございます!私は考えることができるすべてを試して、それについて考えなかった。 –
問題ありません!それが問題を解決した場合は、回答を受け入れ済みとマークしてください。ありがとう – simonWasHere