swift 我如何从超类中移除或禁用一些初始化?

tuwxkamq  于 2023-02-15  发布在  Swift
关注(0)|答案(1)|浏览(129)

我想从我的超类中禁用或删除一些初始化,这里是我的测试代码:

class MyA {
    
    init() {
        
    }
    
    init(value: String) {
        
    }
    
    init(value2: String) {
        
    }
}

class MyB: MyA {
    
}

如您所见,MyA有3个初始化,MyB有相同的初始化,因为它是子类,所以我想在MyB类中删除这3个初始化中的2个,我想用init()初始化MyB,我该怎么做呢?另外2个方法对子类不可用。

cu6pst1q

cu6pst1q1#

https://docs.swift.org/swift-book/LanguageGuide/Initialization.html
如果你的子类没有定义任何指定的初始化器,它会自动继承所有超类指定的初始化器。
因此,定义一个指定的初始化式。

class MyB: MyA {
  override init() {
    super.init()
  }
}

相关问题