继承
- 类可以从另一个类继承方法,属性和其他特性
- 当一个类继承自另一个类时,继承类为子类,它继承的类称为其超类
- 子类可以调用和访问属于其超类的方法,属性和下标,并且可以重写这些方法,属性和下标的自己的重写版本,以优化或修改它们的行为
- 子类中可以为继承来的属性添加属性观察器,当属性值改变时,类就会被通知到
定义一个基类
代码语言:javascript复制class Penson: NSObject {
var name = ""
var age = 0
var height = 0.0
var weight = 0.0
func dosomething(){
print("做事情")
}
}
let per = Person()
per.name = "人民群众"
per.dosomething() //人民群众做事情
定义子类
代码语言:javascript复制class Student: Person {
var hobby = ""
func play() {
print("玩耍")
}
}
let stu = Student()
stu.name = "小明"
stu.hobby = "游泳"
stu.dosomething() //小明做事情
重写
使用override
关键字为覆盖定义添加前缀
class Student: Person {
var hobby = ""
override func dosomething() {
print("(name)喜欢(hobby)")
}
}
let stu = Student()
stu.name = "小明"
stu.hobby = "游泳"
stu.dosomething() //小明喜欢游泳
防止重写
使用final
关键字来阻止它被覆盖
class Person: NSObject {
var name = ""
var age = 0
var height = 0.0
var weight = 0.0
final func dosomething(){
print("(name)做事情")
}
}
这样子类将无法重写dosomething方法,编译器提示错误为Instance method overrides a 'final' instance method