使用
class
和類別名稱來建立類別。class Shape {
var numberOfSides = 0
func simpleDescription() -> String {
return "A shape with \(numberOfSides) sides."
}
}
要建立一個class的實體,在類別名稱後面加上小括號。
用點來存取屬性和方法。
var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()
使用
init
建立建構子。class NamedShape {
var numberOfSides: Int = 0
var name: String
init(name: String) {
self.name = name
}
func simpleDescription() -> String {
return "A shape with \(numberOfSides) sides."
}
}
建立類別實體的時候,每個屬性都要被賦值。可以透過宣告的方式(numberOfSides
)或是建構子(name
)。如果你需要在删除實體之前進行一些清理工作,使用
deinit
建立解構子。
子類別的定義方法是在類別名稱後面加上父類別的名字,用冒號分割。建立類別不一定要指定父類別。
子類別如果要覆寫父類別的方法,需要用
override
——如果没有添加override
就覆寫父類別方法的話編譯器會報錯。同樣的,編譯器也會檢查override
是否存在父類別中。class Square: NamedShape {
var sideLength: Double
init(sideLength: Double, name: String) {
self.sideLength = sideLength
super.init(name: name)
numberOfSides = 4
}
func area() -> Double {
return sideLength * sideLength
}
override func simpleDescription() -> String {
return "A square with sides of length \(sideLength)."
}
}
let test = Square(sideLength: 5.2, name: "my test square")
test.area()
test.simpleDescription()
沒有留言:
張貼留言