我正在从书中学习迅速并键入结构和类的示例。然而这个例子并不像它应该的那样工作,因为只要僵尸被调用,程序不会减少人口数量。我知道这是一个愚蠢的问题,但我不明白为什么。有人可以解释什么是错的吗?因此,这里的代码:覆盖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