"Вы можете использовать конечный класс в Swift, чтобы отключить наследование класса".

"Статические функции вызываются классом, а не экземпляром класса".

static func
final class func

Между static funcи final class func нет различий,они будут делать то же самое, если не удалить 'final' ключевое слово и функция класса будут переопределяться подклассом.

class func

Чтобы было понятно, я сделал пример:

class Animal {
  class func eat() -> String {
    return "Class Animal Eat Function."
  }
  
  static func bark() -> String {
    return "Class Animal Bark Function."
  }
  
  //Same as above
  final class func run() -> String {
    return "Class Animal Run Function."
  }
}

class Dog: Animal {
  override class func eat() -> String {
    return "Class Dog Eat Function."
  }
  
  //ERROR: Can not override static func
  override static func bark() -> String {
    return "Class Dog Bark Function."
  }
}

Я также хочу добавить,

  • В том же классе вы не можете получить доступ к нестатической функции, сохраненному свойству или вычисляемому свойству из статической функции.
  • В том же классе вы можете получить доступ к статической функции, сохраненному свойству или вычисляемому свойству из статической функции, просто введя ее имя.
  • В том же классе вы также можете получить доступ к статической функции, сохраненному свойству или вычисляемому свойству из статической функции, введя Имя класса + точка + имя элемента

В заключение, окончательный класс в Swift предотвращает наследование класса.

Я попытался объяснить через функции. По большей части то же самое относится и к свойствам.