Swift入门教程11-继承
2014-11-03 22:01
363 查看
原创BLog,转载请注明出处
我的Swift教程链接
http://blog.csdn.net/column/details/swift-hwc.html
继承
两个概念:子类(subclass)和基类(base class)
子类可以继承父类的属性、方法、下标脚本(subscript)
子类可以调用和重写父类的属性、方法、下标脚本
1、继承的语法
用一个冒号指定继承关系
class subclass:baseclass{
}
2、访问和重写
在子类中,调用super.属性 super.方法 super[]等来访问基类
用override关键字重写:可以重写属性,方法,属性观察期,下标脚本
如果基类不想被重写,使用final关键字
final var
final func
final class 可以防止这个类被继承
子类重写的几点注意事项:
(1)对于基类的读写属性,不能重写为只读属性,如果提供getter方法,则同时要提供setter方法
(2)不可以对继承来的只读属性或者常量属性添加属性观察器,因为这样的属性不会变化
(3)不要同时提供set方法和属性观察器,因为在set方法中已经知道属性的变化了
3、几个简单的例子
例子一、重写属性
例子二、重写方法
例子三、重写下标脚本
我的Swift教程链接
http://blog.csdn.net/column/details/swift-hwc.html
继承
两个概念:子类(subclass)和基类(base class)
子类可以继承父类的属性、方法、下标脚本(subscript)
子类可以调用和重写父类的属性、方法、下标脚本
1、继承的语法
用一个冒号指定继承关系
class subclass:baseclass{
}
2、访问和重写
在子类中,调用super.属性 super.方法 super[]等来访问基类
用override关键字重写:可以重写属性,方法,属性观察期,下标脚本
如果基类不想被重写,使用final关键字
final var
final func
final class 可以防止这个类被继承
子类重写的几点注意事项:
(1)对于基类的读写属性,不能重写为只读属性,如果提供getter方法,则同时要提供setter方法
(2)不可以对继承来的只读属性或者常量属性添加属性观察器,因为这样的属性不会变化
(3)不要同时提供set方法和属性观察器,因为在set方法中已经知道属性的变化了
3、几个简单的例子
例子一、重写属性
class HwcBaseClass{ var baseVar:String = "hwc" } class HwcSubClass:HwcBaseClass{ var subVar:Int = 10 override var baseVar:String{ get{ return super.baseVar } set{ super.baseVar = newValue + "123" } } } var baseInstance = HwcBaseClass() var subInstance = HwcSubClass() println(baseInstance.baseVar) println(subInstance.baseVar) subInstance.baseVar = "hello" println(subInstance.baseVar)
例子二、重写方法
class HwcBaseClass{ func print(){ println("baseclass") } } class HwcSubClass:HwcBaseClass{ override func print(){ println("subclassclass") } } var baseInstance = HwcBaseClass() var subInstance = HwcSubClass() baseInstance.print() subInstance.print()
例子三、重写下标脚本
class HwcBaseClass{ var x = 0 var y = 0 override subscript(index:Int)->Any?{ switch index{ case 0: return x case 1: return y default: return nil } } } class HwcSubClass:HwcBaseClass{ subscript(index:Int)->Any?{ switch index{ case 0: return super.x + 1 case 1: return super.y + 1 default: return nil } } } var baseInstance = HwcBaseClass() var subInstance = HwcSubClass() println(baseInstance[0]) println(subInstance[0])
相关文章推荐
- swift菜鸟入门视频教程-11-方法
- CSS网页布局入门教程11:带当前标识的标签式横向导航图片美化版
- JavaScript入门教程(11) js事件处理
- jQuery 入门教程(11): 方法链
- AngularJS入门教程11:REST和定制服务
- Spring MVC 教程,快速入门,深入分析[1-11]
- 【转载】Div+CSS布局入门教程一(11-09)
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Android入门进阶教程(11)-远程图片获取和Xml解析
- Android入门进阶教程(11)-远程图片获取和Xml解析
- jQuery 入门教程(11): 方法链
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM) 推荐
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- HTML入门教程 - 11.关于表单(Forms)
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Expression Blend实例中文教程(11) - 视觉管理器快速入门
- Python 入门教程 11 ---- Lists and Functions
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)