我不确定我是否正确地提出了这个问题,但这是我的问题:我有一个基类和一个子类,我的基类永远不应该自己实例化(在其他语言中它是抽象的)。我知道抽象类不是Swift中的东西。我有一些计算的只读属性,可以改变它们在每个子类中返回的内容;它们或多或少是定制的常量。首先,被覆盖的计算属性是处理这种事情的最佳方法吗?其次,如果这些变量需要初始化,即不能为零,那么它们应该在父类中初始化为什么?有没有办法以其他方式表明不应该自己初始化父类?
答案 0 :(得分:2)
在您的情况下,您可能应该使用协议而不是基类。所有常见的实现都可以在协议扩展中完成,您不需要为常量提供默认值 - 只需在协议中指定所需的get
方法。