ios深度解析之Swift(枚举,继承,协议,扩展)
来源:互联网 发布:软件测试简历 编辑:程序博客网 时间:2024/05/16 07:11
// 1.枚举//enum 枚举命: 类型{//// case 分支1 = 赋值1// case 分支2 = 赋值2// //}enum PersonIndentity: String { case Teacher = "Teacher_id" case Student = "Student_id"}// 类class Person { var indentity: PersonIndentity? var name: String? var age: String // 类的构造器 init (name:String , age: String, idd:PersonIndentity) { self.name = name self.age = age self.indentity = idd } func hello() { print("hello") } // 类型方法 class func hello2() { } }// 枚举 枚举名.类型 eg:PersonIndentity.Student// 枚举名可以省略var person = Person(name: "林林", age: "90", idd: PersonIndentity.Student)// 枚举值的获取// 获取当前分支person.indentity?.hashValue// 获取分支的值person.indentity?.rawValue
// 2.继承 类名: 父类名class Student: Person { var classNumber: Int = 23 init(name: String, age: String, idd: PersonIndentity, classNum:Int) { // 如果属性仅指定类型,需要在super,init前进行赋值操作 self.classNumber = classNum super.init(name: name, age: age, idd: idd) } // 重写父类方法 需要重写override关键字 override func hello() { } override class func hello2() { }}
// 3.协议protocol OneProtocol { func typeFunc () static func typeFunc2() mutating func typeFunc3() }// 类和结构体实现协议方法的时候 需要根据class StudentNew:OneProtocol { func typeFunc() { } class func typeFunc2() { } func typeFunc3() { } }struct VideoNew:OneProtocol { func typeFunc() { } static func typeFunc2() { } mutating func typeFunc3() { }}// 类同时继承父类和协议的时候 父类必须写在前面@objc protocol TwoProtocol { optional func byebye()}// 当协议中方法使用 optional 声明可选时 协议必须声明成object 此时协议为类的协议: class protocol// 并且不能被结构体继承//struct Struct2:TwoProtocol {// // //}
// 4.扩展var value :String = ""extension Person { func hello5 (){ } // 如果想扩展属性 只能是计算属性 var stu2:String { get{ return value } set { value = newValue } } // 扩展构造器的时候需要使用 convenience convenience init (name:String , age: String, idd:PersonIndentity, stu2:String) { self.init(name:name, age:age, idd:idd) self.stu2 = stu2 }}var person4 = Person(name: "毛毛", age: "80", idd: .Student, stu2: "笨蛋")person4.stu2person4.stu2 = "sb"person4.stu2
1 0
- ios深度解析之Swift(枚举,继承,协议,扩展)
- iOS巅峰之Swift结构体和类, 枚举, 构造器, 继承, 协议, 扩展(完结篇)
- Swift高级开发语言--枚举,继承,协议,扩展
- iOS经典讲解之Swift枚举(Enum)、协议(protocol)、扩展(Extension)
- iOS讲解迷惑--Swift中枚举、继承、协议
- swift继承 多态 扩展 协议
- ios深度解析之Swift(基本数据类型)
- ios深度解析之Swift(分支语句)
- ios深度解析之Swift(函数)
- iOS swift学习之入门详解(协议和扩展)
- ios深度解析之Swift(基本数据类型2)
- ios深度解析之Swift(结构体和类,属性)
- iOS 协议代理的继承和扩展
- Swift学习小结之协议和扩展
- Swift快速入门之协议与扩展
- 关于 继承、扩展和协议,深度好文
- ios深度解析之coreData
- swift 协议和扩展
- 字符串是什么?字符串应用在什么场景中?如何定义字符串
- c++中指针与动态内存的分配
- <Unity>鼠标拖动物体、按下鼠标左键旋转观察物体、鼠标滚轮缩放视野
- Lua贪吃蛇开发笔记2
- Leetcode -- Recover Binary Search Tree
- ios深度解析之Swift(枚举,继承,协议,扩展)
- 如何看java类图
- R语言中的异常或错误处理
- 杭电1061--n^n末尾的数
- Linux文件和文件夹复制
- HashMap源码解读
- 笔试编程总结
- nerdtree与ctags
- void*指针、类型转换和动态内存分配