Swift 2.构造函数-子类构造

时间:2022-02-20 19:31:14

ViewController.swift

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
//alloc init = ()
//自定义对象 打印内存是内存地址
let p = Student()

print(p.name, p.age,p.no)
}


}

Person.swift

/*
构造函数 : 分配内存空间 设置初始值
()
在swift中 所有的构造方法 都是init

*/
import UIKit

class Person: NSObject {
var name: String

var age: Int

//表示重写 表示重写父类的构造函数
//父类已经提供函数 子类需要对父类的函数进行扩展
//方法内 可以super.
override init() {


print("Person init")
name = "刘亦菲"
age = 30
// super.init()
// name = "刘亦菲"
}
}

Student.swift

import UIKit

class Student: Person {
var no: String

override init() {
print("Student init")
no = "007"
//隐式生成 super.init 在Xcode 7 beta5 在之前的版本都需要手动添加
//建议自己手动加上 super.init
// super.init()
}
}