注意
Swift 中的类并不是从一个通用的基类继承而来的。如果你不为自己定义的类指定一个超类的话,这个类就会自动成为基类。
下面的例子定义了一个叫 Vehicle
的基类。这个基类声明了一个名为 currentSpeed
,默认值是 0.0
的存储型属性(属性类型推断为 Double
)。currentSpeed
属性的值被一个 String
类型的只读计算型属性 description
使用,用来创建对于车辆的描述。
Vehicle
基类还定义了一个名为 makeNoise
的方法。这个方法实际上不为 Vehicle
实例做任何事,但之后将会被 Vehicle
的子类定制:
class Vehicle {
var currentSpeed = 0.0
var description: String {
return "traveling at \(currentSpeed) miles per hour"
}
func makeNoise() {
// 什么也不做——因为车辆不一定会有噪音
}
}
可以用初始化语法创建一个 Vehicle
的新实例,即类名后面跟一个空括号:
let someVehicle = Vehicle()
现在已经创建了一个 Vehicle
的新实例,你可以访问它的 description
属性来打印车辆的当前速度:
print("Vehicle: \(someVehicle.description)")
// 打印“Vehicle: traveling at 0.0 miles per hour”
Vehicle
类定义了一个具有通用特性的车辆类,但实际上对于它本身来说没什么用处。为了让它变得更加有用,还需要进一步完善它,从而能够描述一个具体类型的车辆。