swift的面向对象特性
虽然我学过c#,也学过java,但是,现在脑子里几乎想不起来关于他们的东西了OTZ
swift可以定义三种面向对象类型:类, 枚举, 结构体
虽然都是面向对象类型,但是只有类是引用类型,枚举和结构体依然是值类型
也就是说,类的传值复制的是指针,而枚举和结构体的传值复制的是对象本身
为什么有了类还有再定义枚举和结构体这种类型呢(枚举和结构体虽然是面向对象类型,却是值类型,使用起来性能不一样)
面向对象类型有三大特性:封装,继承,多态
封装就是把外界不需要的属性和方法隐藏起来,只提供部分接口来让外界来使用
继承很好理解,swift仅支持单继承,然后提供了协议来弥补这个缺点
多态还不知道怎么回事
结构体和枚举在c语言中并没有面向对象的特性,但是swift重新定义了他们,并且赋予了他们面向对象的功能
在swift中,实例和对象是不同的,只有类的实例才能被
定义了swift的任意类型之后,大致可以从5个方面来使用该类型:
1 声明变量
2 创建实例,但是枚举不能随意的创建实例,只能使用定义枚举时定义好的实例
3 访问类型属性
4 调用类型方法
5 派生子类。但是swift只有类才支持继承,枚举和结构体都不支持继承,因此枚举和结构体都不能派生子类