我正在從書中學習迅速並鍵入結構和類的示例。然而這個例子並不像它應該的那樣工作,因爲只要殭屍被調用,程序不會減少人口數量。我知道這是一個愚蠢的問題,但我不明白爲什麼。有人可以解釋什麼是錯的嗎?因此,這裏的代碼:覆蓋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