Уточнение выходного класса Swift
В следующем коде почему myRide.drive()
печать класса Car
вместо "Езда на 200"?
class Car {
var topSpeed = 200
func drive() {
print("Driving at \(topSpeed)")
}
}
class Futurecar : Car {
func fly() {
print ("Flying")
}
}
let myRide = Car() // Car
myRide.topSpeed // 200
myRide.drive() // Car
let myNewRide = Futurecar() // Futurecar
myNewRide.topSpeed // 200
myNewRide.drive() // Futurecar
myNewRide.fly() // Futurecar
Я понимаю что класс Futurecar
наследует от машины класс. Спасибо!
1 ответ
Я полагаю, вы делаете это на детской площадке.
На детской площадке есть дополнительная панель справа, верно? Я думаю, что все эти выводы вы получили с правой панели.
Правая панель не обязательно отображает текст, напечатанный на консоли. Когда вы пишете переменную, на правой панели будет отображаться значение этой переменной. Когда вы пишете вызов метода, на правой панели будет отображаться возвращаемое значение метода. Если метод не возвращает значение, он будет отображать объект, для которого вызывается метод.
В этом случае, drive
не возвращает значение. На правой панели отображается объект, на котором он вызывается. FutureCar
объект.
Выше объясняется, что вы получите. Теперь давайте посмотрим, как мы можем увидеть напечатанный текст. В нижней части окна Xcode вы увидите это:
Нажмите на кнопку с треугольником внутри прямоугольника. Это покажет окно консоли. Выход из вашего print
заявления будут отображаться здесь!