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()
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 下面是我最近两年学习OC中的一些基础知识,对于学习OC基础知识的人可能有些帮助,拿出来分享一下,还是那句话不喜勿喷...
    小小赵纸农阅读 2,631评论 1 7
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,686评论 0 11
  • 20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...
    iOS_恒仔阅读 2,313评论 1 6
  • 【动待花开】20171123 D42 下班前接到楼下妈妈的电话,邀请我们参加他家小朋友的生日宴,平时一起玩的要好的...
    芝麻_mom阅读 229评论 0 0