swift 2.0 延展 Extension
// 4.Extension 延展 //----OC中有延展 和 类目 两种。其中,延展是声明该类的私有属性和私有方法,封装性强。类目是对系统原有类 进行扩展,可以扩展属性和方法,并且,该扩展的属性和方法都是可以遗传下去的。 //----但是swift 中没有这两种的说法了,只有延展。这里的延展,表示的意义是:A.对原有类的扩展,并且只能扩展方法;B.可以扩充协议,并实现。 class Student { var name: String? var age: Int?
func study(){
} } //应用场景,如果我们已经封装好了一个Manager类,但是,在后来的使用过程,突然觉得应该跟那个类加一个功能,这时,我们可以直接用延展,不破坏原来的类的封装,并实现了扩展。我个人认为这也很好的体现了面向对象的一大特性:封装。 extension Student{
func eat(){ print("学生也是需要吃饭的") } } var student_00 = Student() student_00.study() //使用延展方法 student_00.eat() //比如,我们现在想这个类遵循某一个协议,这时,也可以使用延展完成。 extension Student: KeepHouseProtocol{
//因为KeepHouseProtocol是可选方法的协议,所以加@objc @objc func clean() { print("学生也是需要打扫教室卫生的") } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |