Swift 类继承输出说明

标签 swift inheritance swift-class

在下面的代码中,为什么 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 是从汽车类继承的。谢谢!

最佳答案

我猜你是在 Playground 上做这个。

在 Playground 上,右边有一个额外的面板,对吧?我认为您获得的所有这些输出都来自右侧面板。

右侧面板不一定显示打印到控制台的文本。当您写入变量时,右侧面板将显示该变量的值。当您编写方法调用时,右侧面板将显示该方法的返回值。如果该方法没有返回值,它将显示调用该方法的对象。

在这种情况下,drive 不返回值。右侧面板显示调用它的对象 - FutureCar 对象。

上面解释了你得到的输出。现在让我们继续看看如何查看打印的文本。在 Xcode 窗口的底部,您将看到:

enter image description here

单击矩形内有三角形的按钮。这将显示控制台窗口。 print 语句的输出将显示在这里!

关于Swift 类继承输出说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46388030/

相关文章:

swift - 无法访问 Pod 内的类成员

ios - 尝试通过 JSON 将自定义类发送到 .NET Web 服务时,JSON 写入错误中的类型无效

ios - JSValue.toObjectOf 返回 nil

ios - 使用 NSUserDefaults 与 watchkit 共享数据

java - 父类中的私有(private)字段 - java

c++ - 在 BISON 语义规则中实现多种返回类型

c++ - 在派生类中扩展枚举

ios - Xcode 7.1 Swift 2 Interface Builder 文件中的未知类

ios - 在 ViewController 中的属性闭包中定义 UIBarButtonItems