相同点:
- 可以定义属性(properties)
- 可以定义方法(methods)
- 可以定义下标(subscripts)来取其值
- 可以使用初始化构造器(init)来初始化实例
- 可以使用扩展
- 可以遵守协议,并且实现协议
不同点(类独有的):
- 可以继承自父类,即可继承
- 可以在运行时检查和解释类实例的类型,即运行时判断实例是哪个类
- 可以释放它分配的所有资源,即析构器(可以实现deinit()方法)
- 引用计数可以有多个引用,即实例的引用计数可以大于1
构建没有初始化方法的structure和Class:
struct Resolution {
var width = 0
var height = 0
}
///
class VideoMode {
var resolution = Resolution()
var interlaced = false
var frameRate = 0.0
var name: String?
}
此时Resolution和VideoMode的实例的创建方法如下:
///Resolution结构的初始化
let someResolution