-
继承:
Swift中,一个类可以从另一个中继承它的方法以及属性.则继承了另一个类的类,被称为子类,被继承的类,称为父类.只有类才能够被继承.在声明类时,类名后使用:
加上父类名称就可以继承该类
//定义一个基类"SuperClass",Swift中,自定义的类,如果没有继承其他类,那么它就是基类
class SuperClass {
var vari = 0
func description() {
print("super log")
}
}
//定义一个继承与"SuperClass"的子类"SubClass"
class SubClass:SuperClass {
}
var subClass = SubClass()
subClass.description()
-
重写:
子类可以对父类的实例方法,类方法,实例属性,类属性进行修改,即重写,使用override
关键字表示你将重写某个方法或属性)
- 重写实例属性,实例方法
//父类
class SuperClass {
//父类属性
var vari:Int {
return 10
}
//父类方法
func description() {
print("super log")
}
}
//子类
class SubClass:SuperClass {
//子类自带属性
var num = 0
//重写父类属性
override var vari : Int {
set{
num = newValue + 10
}
get {
return num
}
}
//重写父类方法
override func description() {
print("sub log")
}
}
//生成父类对象
var superClass = SuperClass()
superClass.vari
print(superClass.vari)
superClass.description()
//生成子类对象
var subClass = SubClass()
subClass.vari = 10
print(subClass.vari)
subClass.description()
-
重写属性监听者
class SuperClass {
var vari:Int = 0
}
class SubClass:SuperClass {
var num = 0
override var vari : Int {
didSet {
print("sub didSet")
}
}
}
//生成子类对象
var subClass = SubClass()
subClass.vari = 10
-
防止重写(如果我们不希望子类修改父类的属性或者方法,可以在前面添加
final
关键字,表明该属性或方法不可以被子类重写)