Swift系列11-继承

类的继承

一个类可以从另外一个类继承属性,方法和其他特征;
当一个类继承另一个类时,继承的类就是子类,被继承的类就叫父类.

子类可以调用和访问属于他父类的方法,属性和下标脚本,并且可以提供他们重写的方法,属性和下标来定义或者修改他的行为.

基类

任何一个不从其他类继承的类都叫基类;

1
2
3
4
5
6
7
8
9
10
11
12
13
//创建基类
class Earth {
var sea = "海洋"
var sky = "天空"
var land = "陆地"
var biology = "生物"
var flow:String{
return "flow"
}
func seaColor(){
print("蓝色")
}
}

子类

子类是基于现有的类创建新类的行为.
子类从父类继承属性和方法,你可以重新定义它们,也可以添加新的属性和方法.
为了表明子类有父类,把子类写在父类前面,用冒号隔开
子类本身也可以被继承

1
2
3
4
5
6
7
8
9
10
11
12
//创建子类
class Sky: Earth {
var skyColor = "白色,蓝色,黑色"
override init() {
super.init()
print(sky)//父类的值
sky = "子类的天空"//子类重新赋值
print(sky)//子类的值
print(skyColor)//子类的新属性

}
}

重写

子类可以重写父类的属性,方法,set和get
重写需要在前面加上override关键字

1
2
3
4
5
6
7
8
//重写方法
override func seaColor() {
print("子类重写父类方法")
}
//重写属性 get
override var flow: String{
return super.land + "new land"
}

防止重写

final关键字修饰方法,属性,子类无法对其进行修改;
在类面前final修饰,表示该类不能有子类;

1
2
3
4
5
6
7
8
//方法
final func getSky(){
print("get Sky")
}
//类
final class land:Earth{

}

The End