Swift学习(十:继承)

作者: 爱偷懒的万万 | 来源:发表于2016-08-13 15:33 被阅读15次
1.定义一个基类

不继承于其它类的类被称为基类。

    class Vehicle {
        var currentSpeed = 0.0
        var description: String {
            return "traveling at \(currentSpeed) miles per hour"
        }
        func makeNoise() {
            // 什么也不做-因为车辆不一定会有噪音
        }
    }

Vehicle是一个基类。基类定义了一个名为makeNoise的方法。

2.子类生成

超类名写在子类名的后面,用冒号分割:

    class SomeCliss: SomeSuperclass{

    }
3.重写

子类可以为继承来的实例方法,类方法,实例属性活下标提供自己定制的实现,这叫重写。

可以通过super.方法名()来调用超类的方法。
可以通过super.属性名来访问超类的属性.
在下标的重写实现中,可以通过super[xxx]来访问超类版本中的相同下标。

*重写方法

    class Train:Vehicle{
            override func makeNoise(){

            }
    }
  • 重写属性

      class Car:Vehicle{
              var gear = 1
              override var description: String {
                      return super.desciption + "in gear \(gear)"
          }
      }
    
  • 重写属性观察器

      class Car:Vehicle{
              override var description: String {
                      didSet{
                            //.........
                      }                       
              }
      }
    
  • 防止重写
    通过把方法,属性,下标标记为final来防止被重写。

相关文章

  • Swift学习(十:继承)

    1.定义一个基类 不继承于其它类的类被称为基类。 Vehicle是一个基类。基类定义了一个名为makeNoise的...

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

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

  • swift 学习- 继承

    1.计算属性不占据内存,相当于是方法调用 2.子类可以将父类的属性(存属,计算)重写为计算属性(只能重写为计算属性...

  • Swift学习笔记-继承

    1.方法的重写 需要在重写的方法前加 override。 在属性someProperty的 getter 或 se...

  • Swift学习(十三)继承

  • Swift学习之继承

    1、值类型(枚举、结构体)不支持继承,只有类支持继承。 类被关键字final修饰后,就不会被任何类继承 2、子类可...

  • 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学习(十:继承)

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