博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift中子类必须包含的构造器和析构器
阅读量:6134 次
发布时间:2019-06-21

本文共 1136 字,大约阅读时间需要 3 分钟。

import Foundation/*Swift中子类必须包含的构造器1.Swift允许在父类构造器前添加required关键字, 用于声明所有子类必须包含该required构造器  (如果没有声明, 子类中默认会自动包含), 至于要怎么实现父类中required构造器, 没有特殊要求  可以通过便利构造器实现, 也可以通过普通构造器实现2.父类中声明的required构造器既可以是指定构造器, 也可以是便利构造器Swift中子类必须包含的析构器(用于在对象释放之前进行资源释放, 对象会在析构器执行完之后才销毁)1.析构器是一个名为deinit的函数, 不需要使用func关键字, 无参数和返回值2.析构器在实例释放之前由系统自动调用, 不要主动调用析构器3.子类自动继承父类的析构器, 而且无论如何, 子类析构器一定会调用父类析构器*/class Person{    var name: String?    var weight: Double?        required init(name: String, weight: Double)    {        self.name = name        self.weight = weight    }        required convenience init(name: String)    {        self.init(name:name, weight:0.0)    }        deinit    {        print("程序准备释放Person")    }}class Man: Person{    required init(name: String)    {        super.init(name: name, weight: 0.0)    }        required convenience init(name: String, weight: Double)    {        self.init(name: name)    }        deinit    {        print("程序准备释放Man")    }}class Woman: Person{    }var man:Man? = Man(name: "Rinpe")print(man)var man2 = Man(name: "lala", weight: 0.0)print(man2)var woman = Woman(name: "lili", weight: 0.0)print(woman)man = nil

  

转载地址:http://nkaua.baihongyu.com/

你可能感兴趣的文章
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>
使用FMDB最新v2.3版本教程
查看>>
SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
cmake总结
查看>>