class Person {
func method2() {
print("Person method2")
}
func method1() {
print("Person method1")
self.method2()
}
}
class SubPerson:Person {
func superM1() {
super.method1()
}
override func method1() {
print("SubPerson method1")
}
override func method2() {
print("SubPerson method2")
}
}
SubPerson().superM1()
//輸出
Person method1
SubPerson method2
如果注釋掉 subperson的method2輸出
Person method1
Person method2
總結(jié):super只是告訴編譯器指向,并不更改調(diào)用對(duì)象的身份。實(shí)際對(duì)象還是子類對(duì)象優(yōu)先調(diào)用子類對(duì)象的方法。