В отличие от class
var, где они могут быть переопределены в подклассах, я считаю, что это относится и к static
, но, к сожалению, нет. Вот примерпереопределение статических варов в подклассах swift 1.2
public class A {
private static let NAME: String = "A"
}
public class B: A {
private static let NAME: String = "B" //error
}
по моему мнению, статические средства ассоциации с этим конкретным классом, поэтому в приведенном выше примере B
должен получить его собственное пространство, чтобы переопределить эту переменную, как это связано с B
только, я возвращаясь к stored properties
, если только у кого-то есть лучшее решение.
Отличные подсказки. Всего несколько замечаний - я считаю, что ваше намерение было «публичным классом B: A' не' public class B'. Также вам нужно добавить 'override' keyword' переопределить класс var name: String'. Не полностью понять ваше намерение с помощью 'static var storedName: String = defineName()', потому что вы не можете использовать метод instance для инициализации свойств static/class. – Mikolaj