前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swift 继承

swift 继承

作者头像
xy_ss
发布2023-11-22 09:12:24
1420
发布2023-11-22 09:12:24
举报
文章被收录于专栏:浮躁的喧嚣

继承

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

定义一个基类

代码语言: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关键字为覆盖定义添加前缀

代码语言:javascript
复制
class Student: Person {
    var hobby = ""
    override func dosomething() {
        print("\(name)喜欢\(hobby)")
    }
}

 let stu = Student()
 stu.name = "小明"
 stu.hobby = "游泳"
 stu.dosomething()    //小明喜欢游泳

防止重写

使用final关键字来阻止它被覆盖

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 继承
  • 定义一个基类
  • 定义子类
  • 重写
  • 防止重写
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档