美文网首页Swift开发
Swift3.0 构造函数(重载)

Swift3.0 构造函数(重载)

作者: Stormstout | 来源:发表于2016-08-07 02:35 被阅读119次

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(name: "老三")
//        print(p.name)
        
        let s = Student(name: "老四", no: "001")
        print(s.name + "------" + s.no)
        
    }
}

4.在Person(父类)中实现以下代码

/**
 1.构造函数的目的 : 给自己的属性分配空间并设置初始值
 2.调用父类构造函数之前,需要给本类的属性设置初始值
 3.调用父类构造函数,给父类属性分配空间,并设置初始值
    NSObject没有属性,只有一个成员变量 'isa'
 4.如果重载了构造函数,并且没有实现父类 init 方法,系统不再提供init()构造函数(默认是会有的)
    重载之后不再提供,因为默认的构造函数不能给本类的属性分配空间
 与OC方法相反
 */

class Person: NSObject
{
    var name :String
    
    //重写 : 父类有这个方法
    override init()
    {
        print("Person init()")
        
        name = "zhan"
        
        super.init()
    }
    
    //重载 : 函数名相同,但是参数和个数不同
    //重载可以给自己的属性从外部设置初始值
    
    init(name : String) {
        
        //使用参数的name设置给属性
        self.name = name
        
        //调用父类的构造函数
        super.init() 
    }
}

5.在Student(子类)中实现以下代码

class Student: Person {

    var no : String
    
    init(name: String , no : String)
    {
        
        self.no = no
        //调用父类方法给 name 初始化
        super.init(name: name)
    }
}

相关文章

  • java05(构造函数重载与构造代码块)

    构造函数的重载: 构造函数的命名就是类名 java构造函数可以重载很多次。构造方法重载具体好处就是:扔进来...

  • Swift3.0 构造函数(重载)

    1.创建Person类文件,继承NSObject2.创建Student类文件,继承自Person(父类)3.在Vi...

  • Swift构造函数-重载构造函数(二)

    重载构造函数 Swift 中支持函数重载,同样的函数名,不一样的参数类型 注意事项 如果重载了构造函数,但是没有实...

  • 02Dart:并不支持构造函数的重载

    Java 代码中,使用了重载构造函数的方法,该方法在 Java 中很普遍,重载的构造函数和之前的构造函数具有相同的...

  • 构造函数;重载构造函数

    构造函数介绍: 定义类使用class,swift可以没有父类,但有些功能无法使用,譬如:KVC 类里可以定义: 可...

  • c++第三讲 类和对象

    目标: 类的默认成员函数 构造函数 析构函数 拷贝构造函数 赋值操作符重载 默认拷贝函数与赋值运算符重载 cons...

  • Boolan:第一周

    1、构造函数不带指针的类,多半不用写析构函数,重载函数:同名不同参重载函数常常用于发生于构造函数 2、写一个类需要...

  • # 重载构造函数

    Swift 中支持函数重载,同样的函数名,不一样的参数类型 注意事项 如果重载了构造函数,但是没有实现默认的构造函...

  • c++面向对象-构造、析构、初始化列表

    构造函数 构造函数是指创建对象的时候,会调用的函数。C++构造函数可以重载,指针或者对象均可调用构造函数。 析构函...

  • C++(第二课) 学习笔记

    构造函数 当在创建一个类的对象时,会自动调用构造函数。构造函数可以重载。 但参数的构造函数可以当作转换函数来使用,...

网友评论

    本文标题:Swift3.0 构造函数(重载)

    本文链接:https://www.haomeiwen.com/subject/egqlsttx.html