美文网首页
swift 中的super

swift 中的super

作者: 三三At你 | 来源:发表于2017-05-16 15:39 被阅读0次
    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
    

    总结:super只是告诉编译器指向,并不更改调用对象的身份。实际对象还是子类对象优先调用子类对象的方法。

    相关文章

      网友评论

          本文标题:swift 中的super

          本文链接:https://www.haomeiwen.com/subject/jxplxxtx.html