Ответ
Нет. Статические (static) методы и свойства принадлежат самому типу, а не его экземплярам, и не поддерживают полиморфизм, поэтому их нельзя переопределить в подклассе.
Для создания методов класса, поддерживающих переопределение, используйте ключевое слово class.
Пример:
class Parent {
class func someMethod() {
print("Parent method")
}
}
class Child: Parent {
override class func someMethod() {
print("Child method")
}
}
Почему? Модификатор static является псевдонимом для class final — он делает метод финальным, что исключает возможность переопределения в иерархии наследования.