美文网首页
swift 继承

swift 继承

作者: 皆为序幕_ | 来源:发表于2018-12-25 16:54 被阅读0次

继承

  • 类可以从另一个类继承方法,属性和其他特性
  • 当一个类继承自另一个类时,继承类为子类,它继承的类称为其超类
  • 子类可以调用和访问属于其超类的方法,属性和下标,并且可以重写这些方法,属性和下标的自己的重写版本,以优化或修改它们的行为
  • 子类中可以为继承来的属性添加属性观察器,当属性值改变时,类就会被通知到

定义一个基类

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()    //人民群众做事情

定义子类

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

相关文章

  • OC Swift文件混编

    一.Swift 类可以继承 OC 类,OC 类不能继承 Swift 类。 二.Swift 和 OC 混编 三.两个...

  • oc 继承 swift 类

    oc 继承 swift 类 项目中使用 oc 继承 swift 类编译器报错: oc 继承前增加 objc_sub...

  • OC调用Swift

    OC调用Swift,Swift的类必须继承NSObject

  • Swift枚举高级用法(Enum)

    关于swift的枚举 一 swift对于枚举的扩展性(Enum) 枚举的继承(继承任何类和协议,目前除了swift...

  • 类继承

    继承是面向对象的重要特征之一。swift中的继承只能发生在类上,结构体和枚举不能继承。在swift中,一个类继承另...

  • Swift 5.x - 初始化(中文文档)

    引言 继续学习Swift文档,从上一章节:继承,我们学习了Swift继承相关的内容,如继承的作用、重写父类的方法和...

  • swift方法参数遵守多继承和遵守多个协议

    参数继承协议 OC中 id Swift 3 protocol Swift 4 A & B 文档

  • swift继承

    一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类)。在 S...

  • Swift:继承

    中文文档 一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类...

  • swift 继承

    继承 类可以从另一个类继承方法,属性和其他特性 当一个类继承自另一个类时,继承类为子类,它继承的类称为其超类 子类...

网友评论

      本文标题:swift 继承

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