• 继承


    1、Swift 中的继承只能发生在类上,不能发生在枚举和结构体上。一个类可以继承另一个类的方法、属性、下标等特征,当一个类继承其他类是,继承类叫子类,被继承类叫父类。子类继承父类后,可以重写父类的方法、属性、下标等特征。例如:status:people

      备注:一个类只能继承一个父类。多继承可以通过协议实现。

    2、重写  一个类继承另外一个类后,子类可以重写(overriding)父类属性和方法。

      属性重写可以重写 getter、setter访问器

      class Person

      {

        var name : String

       }

      class Student : Person{

        var school:String

        override var name:String

        {

          get{ return super.name} // super 表示父类

          set{ super.name=newValue}

        }

      }

    //或者重写属性观察者

    voerride name:String {

      willset{ // ....}

      didset{//....}

     }

    3、 重新方法

    func GetNameByID()-String{}

    voerride func GetNameByID()-String{}

    4、final 关键字 :使用final 关键字声明的类 不能被继承,final 声明的  属性、方法和下标 不能被重写。

    5、值类型构造器代理:为了减少多个构造器间的代码重复,在定义构造器时,可以通过调用其他构造器来完成实例的部分构造过程,这个过程成为构造代理。其中有分为值类型构造器代理,引用类型构造器代理。

      值类型构造器代理 :

      class Rectangle{

        var Int

        var heigth:Int

        init(Int,heigth:Int){self.width=width self.heigth=heigth}

        int(legth:Int){ self.init(60,heigth:100)}  //值类型构造器,self 表示当前本身Init 构造方法

      }

      引用类型构造器代理 分为:便利构造器、向上代理。

      横向代理:类似于值类型构造代理,发生在同一个类内部称为:便利构造器(convenience initializers)

      向上代理:发生在继承情况下,在子类构造过程中要先调用父类构造器,初始化父类的存储属性,这种构造器成为制定构造器(designated initializers)

    5、操作符

      is 操作符可以判断一个实例是否是某个类的类型,结果返回 true、false.

      as 转换成目标类型,实例转换 父类实例可以 as 子类 转换,子类不可以转换成 父类类型。 一般as 是强类型转换,因为在 转换时间 person as? student,成果返回转换后类型,不成功返回nil.

      any 表示任何类型,包括类和其他数据类型。 

      anyObject 表示任何类的实例。

  • 相关阅读:
    用Struts2框架报错:The Struts dispatcher cannot be found
    Struts2.0笔记二
    [转]使用Struts 2防止表单重复提交
    Struts配置文件报错"元素类型为 "package" 的内容必须匹配"
    Java基础知识
    Struts笔记二:栈值的内存区域及标签和拦截器
    [转]迭代器
    Struts笔记一
    账户注册激活邮件及登入和注销
    EL表达式获取对象属性的原理
  • 原文地址:https://www.cnblogs.com/pengzhaov/p/4429359.html
Copyright © 2020-2023  润新知