Avatar
これができると、↓のようにコードを抽象化できます。 @swift-4.2.4 class Person { let firstName: String let lastName: String var fullName: String { fatalError("Override this.") } init(firstName: String, lastName: String) { self.firstName = firstName self.lastName = lastName } } // 西洋人 class WesternPerson: Person { override var fullName: String { return "\(firstName) \(lastName)" } } // 東洋人 class EasternPerson: Person { override var fullName: String { return "\(lastName) \(firstName)" } } let people: [Person] = [ WesternPerson(firstName: "Albert", lastName: "Einstein"), EasternPerson(firstName: "秀樹", lastName: "湯川"), ] // 西洋人と東洋人が混ざっていても姓と名を正しい順に表示 for person: Person in people { print(person.fullName) }