Swift3.0 构造函数(重写)

1.创建Person类文件,继承NSObject
2.创建Student类文件,继承自Person(父类)
3.在ViewController中实现以下方法

/**
 在swift的同一个项目中(同一个命名空间下),所有的类都是共享的,可以直接访问,不需要import
 所有对象的属性 var,都可以直接访问到
 */

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //实例化 Person
        //()-> alloc init
        //Swift中对应一个函数 init()构造函数
        //作用 : 给成员变量分配空间,初始化成员变量
//        let p = Person()
        
        //子类继承父类的方法与属性
        let s = Student()
        //name 归属于 Student
        print(s.name + "-----" + s.no)
    }
}

4.在Person(父类)中实现以下方法

/**
 1.给自己的属性分配空间并设置初始值
 2.调用父类构造函数,给父类属性分配空间,并设置初始值
    NSObject没有属性,只有一个成员变量 'isa'
 与OC方法相反
 */

class Person: NSObject
{
    var name :String
    
    //重写Person的构造函数
    //重写 -> 父类这个方法,自雷重写实现,需要override关键字
    override init()
    {
        print("Person init()")
        
        name = "zhan"
        //在调用父类方法之前,需要给属性初始化
        super.init()
    }
}

5.在Student(子类)中实现以下方法

class Student: Person {
    
    var no : String
    
    override init() {
        
        print("Student init()")
        
        no = "001"
        
        super.init()
    }
}

你可能感兴趣的:(Swift3.0 构造函数(重写))