《从零开始学Swift》学习笔记(Day 47)——final关键字
在类的定义中使用final关键字声明类、属性、方法和下标。final声明的类不能被继承,final声明的属性、方法和下标不能被重写。
下面看一个示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | final class Person { //声明为final,说明它是不能被继承的 var name: String final var age: Int //定义的age属性 final func description() -> String { //定义description实例方法 return "\(name) 年龄是: \(age)" } final class func printClass() ->() { //定义printClass静态方法 print( "Person 打印..." ) } init (name: String, age: Int){ self.name = name self.age = age } } class Student: Person { //编译错误 var school: String convenience init() { self.init(name: "Tony" , age: 18 ,school: "清华大学" ) } init (name: String, age: Int,school: String) { self.school = school super .init(name: name, age: age) } override func description() -> String{ //编译错误 //试图重写description实例方法 print( "父类打印 \(super.description())" ) return "\(name) 年龄是: \(age), 所在学校: \(school)。" } override class func printClass() ->(){ //编译错误 //试图重写printClass静态方法 print( "Student 打印..." ) } override var age: Int { //编译错误//试图重写age属性 get { return super .age } set { super .age = newValue < 8 ? 8 : newValue } } } |
定义Student类,并声明为Person子类时,会报如下编译错误:
Inheritance from a finalclass 'Person'
定义的age属性也是final,那么在试图重写age属性时,会报如下编译错误:
Var overrides a 'final'var
定义description实例方法,它被声明为final,那么在试图重写description实例方法时,会报如下编译错误:
Instance method overridesa 'final' instance method
定义printClass静态方法,它被声明为final,那么在试图重写printClass静态方法时,会报如下编译错误:
Class method overrides a'final' class method
使用final可以控制我们的类被有限地继承,特别是在开发一些商业软件时,适当地添加final限制是非常有必要的。
本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1747532,如需转载请自行联系原作者
相关文章:

CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛
这个是转来的,细节没有验证,请网友自己斟酌。。。。。。。。。。CentOS 5.5 编译安装apachephpmysql,利用CMS快速建立论坛1、安装Apache [rootbogon tmp]# wget http://labs.renren.com/apache-mirror/httpd/httpd-2.2.15.tar.bz2 [rootbogo…
SDT(software-defined Things)?软件定义的物件
物联网(IOT)的概念早在1999年就被宝洁公司的员工Kevin Ashton正式提出,可直到这最近几年才越来越火,无论国内外,但凡跟IOT 搭上点边的都能吸引众多的目光。2014年,投到智能硬件方向的风险资金就占到VC的一半…

赠书福利 | Tidio AI 趋势报告:约42%受访者能够接受机器人伴侣
编译 | 禾木木出品 | AI科技大本营(ID:rgznai100)文章内图源:Tidio近日,波士顿动力发布了一段机器人跳舞的视频,有些人不敢相信他们所看到的,它看起来更像是皮克斯动画而不是真实的镜头。有人说:…

Airlaunch 快捷设置代码分享
Airlaunch 快捷设置代码分享设置:prefs:rootSETTING蜂窝网络:prefs:rootMOBILE_DATA_SETTINGS_IDWIFI:prefs:rootWIFI定位服务:prefs:rootLOCATION_SERVICES蓝牙:prefs:rootBluetooth辅助功能:prefs:rootGe…

hdu3829(最大独立集)
传送门:Cat VS Dog 题意:动物园有N只猫,M只狗,P个小孩。每个小孩都有自己喜欢的动物和讨厌的动物,如果他喜欢狗,那么就讨厌猫, 如果他讨厌狗,那么他就喜欢猫。某个小孩能开心&#x…

数据科学家:那些年,我都学过哪些编程语言…
前言 我们对事物的看法各不相同,有时他人特别喜欢的语言可能会成为另一个人的的噩梦。而我个人的噩梦是用C语言进行日常的编程工作。 本文就介绍了作为一名数据科学家,我在职业生涯中所学过的语言,其中包括MATLAB、Weka、R、C 以及Python。 数…

short_open_tag 必须打开
在使用phpcms本地安装的过程中,到运行环境检测这一步,发现:short_open_tag 必须打开。 从网上搜索相关资料时,发现,将php.ini文件中的short_open_tag off 项,设置成on,重启服务器即可。 shor…

10.15 iptables filter表案例
2019独角兽企业重金招聘Python工程师标准>>> iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 ,可以是INPUT,OUTPUT,FORWARDiptables -P 用来指定 链的默认策略 ——>最好不要直接操作,否则会造成远程的终端断…

高并发大型网站架构设计
一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计? 事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理…

Tidio AI 趋势报告:约42%受访者能够接受机器人伴侣
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 文章内图源:Tidio 近日,波士顿动力发布了一段机器人跳舞的视频,有些人不敢相信他们所看到的,它看起来更像是皮克斯动画而不是真实的镜头。 有人说&#x…

微信公众平台对所有公众号开放自定义菜单
据统计,微信公众号已达1000多万了,但大多数没有微信认证,且没有开发能力,为此微信公众平台开放了自定义菜单功能给所有公众号,这是微信团队年前给广大自媒体送的大礼,期待微信越来越开放 公众帐号运营者点击…

SignalR网页实时推送
1.新建项目,选择mvc4 Wed应用程序,选择Internet,视图引擎:Razor 2.在控制器中添加 并添加上视图 3.引用(install-package Microsoft.AspNet.SignalR) 4.添加Startup 项目名 5.新建Hubs文件夹,添…

Hyper-V虚拟化测试05防火墙及证书配置
3.防火墙和证书3.1、防火墙配置打开Windows防火墙,并进入到高级配置入站规则,启用“Hyper-V副本HTTP侦听器(TCP入站)”和“Hyper-V副本HTTPS侦听器(TCP入站)”可以看到已经启用了如上两条规则允许入站流量3…

httpwatch的timechart 解析
从timeChart,我们可以一目了然的看到那些请求花费的时间较长,一般柱状的长短表示从请求到接受共花费的时间,我们重点需要优化那些柱状较长的部分,当然我们也可以点击time列,按请求时间排到序,直接找出请求时…

英特尔北京2022年冬奥会体验中心落成
2020年东京奥运会已圆满落幕,全社会进入到为北京2022年冬奥会紧锣密鼓筹备的倒计时模式。近日,“英特尔北京2022年冬奥会体验中心”在北京石景山区首钢园落成,并举办了媒体开放日活动。以体验中心为窗口,英特尔在近千平米的展厅中…

机器学习 LR getA()
机器学习 LR getA() 前面的几位回答都没有解决getA()是什么的问题,碰到同样的问题,解释如下:matrix.getA()Return self as an ndarray object.Equivalent to np.asarray(self).Parameters: None Returns: ret : ndarrayself as an ndarray 也…

memcache安装
转载自 http://zhaochen.blog.51cto.com/2029597/390037 一,memcache简单介绍: memcached是高性能的分布式内存缓存服务器,为了提高性能,memcached中的数据都保存在内存中,重启memcached及重启操作系统都会导致缓存中的…

算法小论——第三章 又把新桃换旧符
2019独角兽企业重金招聘Python工程师标准>>> 笔记 这一章主要是渐进记号和高中数学的回忆。 几个标记: Θ -- 上界和下界,绑定值,相当于f(n) ∈ [c1 * g(n), c2 * g(n)]Ω -- 闭区间下界,最好运行时间,相当…

来体验一把职场人的真实训练,检验你的工程化交付能力!
长沙软件人才实训基地是由政府引导,长沙软件园(大型国企)、万兴科技(A股上市公司)和CSDN(中国开发者社区)三方参与,强强联手,倾力打造的人才培育平台,旨在通过…

从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验。本篇主要开始介绍基于XCode进行IOS程序的开发,介绍使用FMDB…

nginx做方向代理不显示图片的问题
在nginx的配置文件中加上 location ~ \.(jpg|png|jpeg|bmp|gif|swf|css)$ { access_log off; expires 30d; root /www/htdocs/market; break; }

Linux系统挂载ntfs分区
Linux系统挂载ntfs分区 http://www.2cto.com/os/201404/297079.htmlposted on 2015-02-21 22:20 雪山看雪 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/zker/p/4297223.html

谷歌新深度学习系统可以促进放射科医生的发展
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 谷歌人工智能研究人员团队在《自然》上发表了一篇新论文,深度学习可以检测出异常胸部 X 光片,其准确度可与专业放射科医生相媲美。 深度学习系统可以帮助放射科医师优先考虑胸部…

【AngularJS】—— 12 独立作用域
独立作用域的作用 为了便于理解,先看一下下面这个例子: <!doctype html> <html ng-app"myApp"><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><script src"…

nginx虚拟目录设置 alias 和 root
nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区别吧。 最基本的区别:alias指定的目录是…

避免死锁的一些注意事项
1. 避免嵌套锁, 如果每个线程都只占有一个锁, 则可以很大程度上避免死锁。其死锁的情况是, 线程 1 依次获得 A 对象和 B 对象的锁, 然后决定等另一个线程的信号再继续, 从而先释放了 B 对象的的锁。可是线程 2 需要同时…

这是一个好问题:既然机器可以学习,它们能忘掉吗?
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 很多公司都使用机器学习来分析人们的欲望、厌恶或面孔。研究人员提出了一个不同的问题:我们如何让机器忘记学习? 机器学习正在寻找如何在人工智能软件中诱发选择性失忆的方法。目…

python tar.gz格式压缩、解压
压缩 代码 import tarfile import os def tar(fname):t tarfile.open(fname ".tar.gz", "w:gz")for root, dir, files in os.walk(fname):print root, dir, filesfor file in files:fullpath os.path.join(root, file)t.add(fullpath)t.close()if __nam…

bzoj1251: 序列终结者 (splay)
splay可以用于维护序列,比如noi的维修序列,比如这道 发现当时splay没写总结,也没题解 然后重新写splay竟然耗了一个晚上 结果是因为max【0】没有附最小值!!血一样的教训 最后祭出inline大法才过,我的splay真…

模型神器组合,yyds!
作者 | 东哥起飞来源 | Python数据科学最近在kaggle上有一个调参神器非常热门,在top方案中频频出现,它就是OPTUNA。知道很多小伙伴苦恼于漫长的调参时间里,这次结合一些自己的经验,给大家带来一个LGBM模型OPTUNA调参的使用教程&am…