class Person {
var name: String
var age: Int
init(){
name = “Bob”
age = 30
}
func printInfo(){
print(name)
print(age)
}
}
为什么在这里使用init()
可以?我以为我需要使用override func init()
。我还需要拨打超级电话吗?
答案 0 :(得分:1)
这是因为你不是从任何类继承而且Person
类是基类,意味着它没有任何超类。 (请注意,您不能从Person
类)的init方法调用super.init()
如果您的类是从任何类继承的,则需要覆盖init方法并需要调用super.init()
像:
class Person : NSObject
{
var name: String
var age: Int
override init()
{
name = "Bob"
age = 30
}
func printInfo()
{
print(name)
print(age)
}
}
答案 1 :(得分:1)
Swift类不从通用基类继承。给你上课 定义而不指定超类自动成为基类 你可以上课。
所以基本上你不会从任何课程中学习,因此不会覆盖任何init
方法。如果您从一个班级继承,比如NSObject
,那么是的,那么您可能想要打电话给超级班级'初始化(就像你在Objective-C中所做的那样)。