【发布时间】:2015-08-14 23:17:26
【问题描述】:
Swift 没有抽象类和方法。相反,它提供协议。
当您的类是完全抽象的或完全具体的时,这很好。
但是,实现具有具体方法的抽象类的最佳“Swift”方式是什么?
伪代码示例:
class Animal {
abstract makeSound()
abstract eyeCount()
}
class Mammal : Animal {
override eyeCount { return 2 } // Let's assume all mammals have hard-coded 2 eyes...
class Cat : Mammal {
override makeSound { print "Meow!" }
}
class Dog : Mammal {
override makeSound { print "Woof!" }
}
在哺乳动物中,我确实想实现具体方法 eyeCount(),因为所有哺乳动物都有 2 只硬编码的眼睛(据说),我不想在狗和猫中重新实现它。但是,makeSound() 应该只用于 Dog 和 Cat,因为哺乳动物有不同的声音。
您将如何在 Swift 中实现这一点?谢谢!
【问题讨论】:
标签: ios swift oop abstract-class