【发布时间】:2016-08-29 02:12:20
【问题描述】:
不确定我是否正确地表达了这个问题,但这是我的问题:我有一个基类和一个子类,我的基类永远不应该单独实例化(在其他语言中它是抽象的)。我知道抽象类在 Swift 中不是一个东西。我有一些计算出来的只读属性会改变它们在每个子类中返回的内容;它们或多或少是定制的常量。首先,重写的计算属性是处理这种事情的最佳方式吗?其次,如果这些变量需要初始化,即不能为nil,在父类中应该初始化成什么?有没有办法以其他方式指示父类不应自行初始化?
【问题讨论】:
-
Swift 有协议和协议扩展而不是抽象类。您应该创建一个协议而不是您的类,它具有所有公开可见的功能,然后实现所有,这在基类中称为协议扩展。
标签: swift class oop abstract-class