如何在 Swift 中通过 super.init 修改子类的基类属性?
考虑基类有一个名为名字的属性,所以我希望子类添加姓氏并通过 super.init 传递它 下面是代码
class mainClass {
var firstname : String = "Abhinav"
init(firstname : String){
self.firstname = firstname
}
func printfirstname(){
print(firstname)
}
}
class subClass:mainClass {
var lastname : String
init(lastname:String){
self.lastname = lastname
let name :String = firstname + lastname
super.init(firstname:name)
}
func printname(){
print(firstname)
}
}
var subclass = subClass(lastname:"Jha")
subclass.printfirstname()
我收到错误“在 super.init 初始化 self 之前在属性访问“firstname”中使用“self””
最佳答案
您正在尝试在初始化之前访问父类(super class)的 firstName
。您应该首先调用 super.init()
。它看起来像:
init(lastname:String){
self.lastname = lastname
super.init(firstname: "Abhinav")
let name = firstname + lastname
self.firstname = name
}
关于swift - 如何在 Swift 中通过 super.init 修改子类的基类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42768934/