Sự khác biệt giữa biến ‘static’ và biến ‘class’ là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
50 lượt xem
Swift senior

Cả hai từ khóa staticclass đề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 staticclass 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
   }
}
{{login.error}}