Cả hai từ khóa static và class đều cho phép chúng ta đính kèm các biến vào một lớp chứ không phải với các instance của một lớp.
Trường hợp static và class khác nhau là cách chúng hỗ trợ kế thừa: Khi bạn tạo một thuộc tính static, nó sẽ thuộc sở hữu của lớp và không thể thay đổi bởi các lớp con, còn khi bạn sử dụng class, nó có thể bị ghi đè nếu cần.
class Person {
static var count: Int {
return 250
}
class var averageAge: Double {
return 30
}
}
class Student: Person {
// THIS ISN'T ALLOWED
// override static var count: Int {
// return 150
// }
// THIS IS ALLOWED
override class var averageAge: Double {
return 19.5
}
}