class Cat { static var mike: Cat { return Cat() } } class FireCat : Cat { static var garo: Cat { return FireCat() } } class Person { var cat: Cat?????? } let p = Person() p.cat = .mike print(p)