Slide 9
Slide 9 text
ONE IDENTITY, MULTIPLE ABILITIES
protocol Flyer {
func fly()
}
protocol TimeTraveler {
func travel(to: NSDate)
}
class Character {
let name: String
}
class Human: Character {
let country: String
}
class Alien: Character {
let planet: String
}
class TimeLord: Alien, TimeTraveler {
init() {
super.init(name: "I'm the Doctor", planet: "Gallifrey")
}
}
class DocEmmettBrown: Human, TimeTraveler {
init() {
super.init(name: "Emmett Brown", country: "USA")
}
}
class Superman: Alien, Flyer {
init() {
super.init(name: "Clark Kent", planet: "Krypton")
}
}
class IronMan: Human, Flyer {
init() {
super.init(name: "Tony Stark", country: "USA")
}
}
@aligatr