从入门到精通swift编程未小码哥课件源码瑞客1期_第1页
从入门到精通swift编程未小码哥课件源码瑞客1期_第2页
从入门到精通swift编程未小码哥课件源码瑞客1期_第3页
从入门到精通swift编程未小码哥课件源码瑞客1期_第4页
从入门到精通swift编程未小码哥课件源码瑞客1期_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

@M了个 实力ITn值类型(枚举、结构体)nn子类可以重写父类的下标、方法、属性,重写必须加上overrideletleta=Animal()a.age=10//32print(Mems.size(ofRef:a))print(Mems.memStr(ofRef:a))classAnimal{varclassAnimal{varage=0}classDog:Animalvarweight=}classErHa:Dog{variq=0}{lete=ErHa()e.age=10e.weight=e.iq=//48print(Mems.size(ofRef:e))print(Mems.memStr(ofRef:letd=Dog()d.age=10d.weight=//32print(Mems.size(ofRef:d))print(Mems.memStr(ofRef:d))classAnimal{funcclassAnimal{funcspeak(){print("Animal}subscript(index:Int)->Int{returnindex}}classCat:Animal{overridefuncspeak(){print("Catspeak")}overridesubscript(index:Int)->Int{returnsuper[index]+1}}varanim:Animalanim=Animal()//Animalspeak//6anim=//Animal//Catspeak//7n被class修饰的类型方法、下标,允许n被static修饰的类型方法、下标,不允许classclassAnimalclassfuncspeak(){print("Animalspeak")}classsubscript(index:Int)->Int{returnindex}}//Animalspeak//6classCat:Animaloverrideclassfuncspeak(){print("Cat}overrideclasssubscript(index:Int)->Int{returnsuper[index]+1}}//Animal//Catspeak//7n子类可以将父类的属性(、计算)重写为n子类不可以将父类属性重写为属性n只能重写var属性,不能重写let属性n重写时,属性名、类型要一致nppclassclassCirclevarradius:Int=0vardiameter:Intsetprint("CirclesetDiameter")radius=newValue/2}getprint("CirclegetDiameter")returnradius*2}}}varcircle:Circlecircle=Circle()circle.radius=6//Circle//12//CirclesetDiametercircle.diameter=20//10classSubCircleclassSubCircle:Circle{overridevarradius:Int{setprint("SubCirclesuper.radius=newValue>0?newValue:}getprint("SubCirclegetRadius")returnsuper.radius}}overridevardiameter:Int{set{print("SubCirclesetDiameter")super.diameter=newValue>0?newValue:0}getprint("SubCirclegetDiameter")returnsuper.diameter}}}circle=//SubCirclesetRadiuscircle.radius=6//SubCircle//Circle//SubCircle//12//SubCircle//Circle//SubCirclesetRadiuscircle.diameter=20//SubCircle//10n被class修饰的计算类型属性,可以n被static修饰的类型属性 、计算),不可以被子类重Circle.radius=Circle.radius=//Circle//12//CirclesetDiameterCircle.diameter=20//10classSubCircle:Circleoverridestaticvardiameter:Int{set{print("SubCirclesetDiameter")super.diameter=newValue>0?newValue:0}getprint("SubCirclegetDiameter")returnsuper.diameter}}}staticvarradius:Int=0classvardiameter:Int{setprint("CirclesetDiameter")radius=newValue/2}getSubCircle.radius=//SubCircleSubCircle.radius=//SubCircle//Circle//12//SubCircle//CirclesetDiameterSubCircle.diameter=20//10}}}n可以在子类中为父类属性(除了只读计算属性、let属性)classclassCirclevarradius:Int=}classSubCircle:Circle{overridevarradius:Int{willSetprint("SubCirclewillSetRadius",}didSetprint("SubCircledidSetRadius",oldValue,}}}varcircle=//SubCirclewillSetRadius//SubCircledidSetRadius1circle.radius=varcircle=varcircle=//SubCirclewillSetRadius//CirclewillSetRadius//CircledidSetRadius1//SubCircledidSetRadius1circle.radius=varradius:Int=1{willSet{print("CirclewillSetRadius",}didSetprint("CircledidSetRadius",oldValue,}}}classSubCircle:Circle{overridevarradius:Int{willSetprint("SubCirclewillSetRadius",}didSetprint("SubCircledidSetRadius",oldValue,}}}varcircle=varcircle=//Circle//SubCirclewillSetRadius//CirclesetRadius//Circle//SubCircledidSetRadius20circle.radius=varradius:Int{set{print("CirclesetRadius",}getprint("CirclegetRadius")return20}}}classSubCircle:Circle{overridevarradius:Int{willSetprint("SubCirclewillSetRadius",}didSetprint("SubCircledidSetRadius",oldValue,}}}//Circle////Circle//SubCirclewillSetRadius//CirclesetRadius//Circle//SubCircledidSetRadius20SubCircle.radius=classvarradius:Int{set{print("CirclesetRadius",}getprint("CirclegetRadius")retur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论