import Foundation/*
什么叫继承: 可以简单理解为一个类可以从它的父类或者基类中直接拿属性或者方法去使用
冒号":"表示两者之间的继承关系
*/
class Person
{/*- 属性 -*/var name: String = ""// 储存属性如果没有在创建的时候赋值, 就要在每一个构造方法中(初始化的时候)赋值var age: Int// 构造方法:每个类都有一个默认的构造方法// 一个对象创建完毕后, 都需要使用构造方法对其进行初始化, 也就是OC中的初始化方法// 对比其他方法, 没有func关键字// 没有返回值init(){// print("这是一个人的构造方法")// 注意, 在这个初始化方法中也要给age赋值self.age = 0}// 自定义构造方法init(name: String, age: Int){self.name = nameself.age = age}/*- 方法 -*/func sleep(){print("这个人在睡觉ingzzzzZZ...")}// 析构函数(相当于OC中的Dealloc), 用于释放对象资源// deinit的调用是在一个消息处理结束之后发生的。所谓消息处理就是指你的线程所对应的AutoreleasePool在该线程的runloop执行模式下,// 处理完一个指定的event,比如点击事件,定时器时间,网络传输事件等。所以,你这里设置为nil,该对象并不会真正去调用deinit方法。deinit{// print("这个人被释放掉了")}
}class Man: Person {// override表示重写父类的方法// 默认初始化方法会自动调用父类的初始化方法override init() {super.init()// print("这是那个男人的构造方法")}deinit{// print("这个男人被释放掉了")}override func sleep() {print("那个男人在睡觉....")}
}var man = Man()
// 使用父类的属性
man.name = "Rinpe"
// 使用父类的方法
//man.sleep()/*--------------------------测试析构函数---------------------------*/func f()
{let person  = Person()person.name = "某某"
}f()/*--------------------------测试析构函数---------------------------*//*--------------------------多态---------------------------*/// 多态:父类指针指向子类对象
// 编译的时候是父类, 但真正使用的时候是子类
var personOne: Person = Man()
// 这里调用的其实是子类的方法
personOne.sleep()func somebodyRun(person: Person)    // 这里参数定义的时候用的是父类
{print("\(person.name)正在跑动")
}somebodyRun(man)        // 这里传参传的是子类/*--------------------------多态---------------------------*/

  

转载于:https://www.cnblogs.com/Rinpe/p/5177528.html

Swift - 43 - 继承, 多态, 析构函数相关推荐

  1. swift面向对象之多态与继承

    swift面向对象之多态与继承 1.多态 运行时多态 运行时多态的要点 1.要有继承关系的存在 2.子类要重写父类的方法 3.父类类型的引用指向子类实例 2.继承 1.继承的注意 继承可以用于类而不能 ...

  2. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  3. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  4. linux c 多态原理,看了所谓的面向对象中靠继承多态实现的所谓重用 哥笑了

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这种重用不过还是引用别的类的函数或其它成员元素 我老听有些不懂编程却爱喷的人说什么面向对象代码可重用性"强" C写的代码 完全不能重用 ...

  5. 深度探索C++ 对象模型(7)-Data member的布局(无继承、继承无多态、继承多态、多层继承)

    无继承 继承无多态 继承多态 虚表 : 用来存放基类的每一个虚函数,再加上首位的一个slots(支持RTTI). 每个class object导入一个vptr,提供执行期的链接,使得每一个class ...

  6. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  7. Winform打砖块游戏制作step by step第5节---重构代码,利用继承多态

    一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---重构代码,利用继承多态 1. 主界面截图如下: 2.  ...

  8. Java继承多态经典案例分享

    今天动力节点java培训机构小编为大家分享Java继承多态经典案例,希望通过此文能够帮助到大家,下面就随小编一起看看Java继承多态经典案例. public class A { public Stri ...

  9. Python的继承多态

    Python的继承多态 文章目录 Python的继承多态 一.私有属性和私有方法 01. 应用场景及定义方式 02. 伪私有属性和私有方法 二.单例 01. 单例设计模式 单例设计模式的应用场景 02 ...

  10. CLR运行时细节 - 继承多态的实现

    关于多态不多解释了,在运行时决定和调用具体的实现,是面向对象的基础 设计模式的基础. 准备把继承多态和接口多态分开,因为从CLR实现的角度继承多态相比于接口多态要简单得多,也更容易理解,本篇只讨论继承 ...

最新文章

  1. 最后的分的计算机公式,省考最后10天!掌握这些数学运算公式,提分!
  2. 亚洲诚信带你玩转[2018国家网络安全宣传周]上海地区活动!
  3. java中获取特定时间段_获取某一时间段特定星期几的所有日期(Java实现)
  4. 【spring学习笔记】(二)Spring MVC注解配置 参数转换注解@RequestMapping@RequestParam、@PathVariable@MatrixVariable
  5. Sublime Text 3设置吊炸天PHP开发环境
  6. Oracle数据库逻辑存储结构管理相关问题与解决
  7. python scheduler 定时执行_python使用apscheduler做定时任务的管理
  8. 虚拟机VMware的Ubuntu下安装tensorflow详解
  9. 分段式多级离心泵_溧阳耐磨矿用多级泵水泵厂
  10. hdu 3461 Code Lock(并查集)2010 ACM-ICPC Multi-University Training Contest(3)
  11. 谨防病毒利用气象软件锁定浏览器主页
  12. 更改session bean的JNDI名称
  13. mysql字符类型_MySQL学习分享--字符类型
  14. MapXtreme实用技巧
  15. 计算机类专业数学分数,同济大学计算机专业数学分数
  16. zktime 协议_ZKtime5.0考勤软件说明书
  17. stlink stm8接口定义_stm8,swim接口
  18. transductive inference(转导推理,直推式学习)
  19. 基于深度学习的知识追踪研究进展 Research Advances in the Knowledge Tracing Based on Deep Learning
  20. Exp外贸/出口英文商城系统在国际电商贸易中的角色扮演

热门文章

  1. python pyqt5实现自定义点击事件_Python 图形用户界面实战 : PyQt5 实现摘要算法计算...
  2. Ubuntu远程办公 -- 设置SSH服务
  3. 前端笔记—第4篇CSS基础知识2
  4. JUC之volatile
  5. 绝版经典《Linux与UNIX Shell编程指南》中文文字PDF版
  6. 腾讯之困,QQ与微信各有各的烦恼
  7. 基于cocos2d-x引擎的游戏框架设计
  8. 供应XBF-01型多功存储介质粉碎机
  9. GraphQL到底怎么用?看看这个例子就知道了
  10. cesium之地图显示坐标、比例尺、海拔高度效果篇