Swift用final关键字来防止重写

final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作。Swift中,final关键字可以在class、func和var前修饰。

通常大家都认为使用final可以更好地对代码进行版本控制,发挥更佳的性能,同时使代码更安全。下面通过实例代码给大家介绍swift用final关键字来防止重写。

 /**
   用final关键字来防止重写
   final,最后的,最终的;决定性的;不可更改的
   final 修饰类的话,表示这个类不可以被继承。
   如果修饰属性或者方法,表示相应的属性或者方法不能被重写。
   */
  class Observer {
//   final 加上
    var storeProperty: Int = 0 {
    willSet {
     print("storeProperty father will Set")
    }
    didSet {
     print("storeProperty father did Set")
    }
   }
   // final
   // 不能给计算属性设定属性观察器
    var computeProperty: Int {
    get {
     return 0
    }
    set {
     print("Do nothing!")
    }
   }
   //final
   func dodododTest() -> Void {
    print("dadadadadaddadaad")
   }
  }
  class ChildOfObserver: Observer {
   // 可以重写父类中变量存储属性
   override var storeProperty: Int {
    willSet {
     print("storeProperty will Set")
    }
    didSet {
     print("storeProperty did Set")
    }
   }
   // 可以重写父类中的计算属性的属性观察器
   override var computeProperty: Int {
    willSet {
     print("computeProperty will Set")
    }
    didSet {
     print("computeProperty did Set")
    }
   }
   override func dodododTest() {
   }
  }
  let co = ChildOfObserver.init()
  co.storeProperty = 10

以上所述是小编给大家介绍的Swift用final关键字来防止重写,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Swift学习笔记之构造器重载

    与函数一样,方法也存在重载,其重载的方式与函数一致.那么作为构造器的特殊方法,是否也存在重载呢?答案是肯定的. 一.构造器重载概念 Swift中函数重载的条件也适用于构造器,条件如下: 函数有相同的名字: 参数列表不同或返回值类型不同,或外部参数名不同: Swift中的构造器可以满足以下两个条件,代码如下: 复制代码 代码如下: class Rectangle {     var width : Double     var height : Double     init(width : Do

  • Swift中重写和重载的使用与对比总结

    前言 最近在学习swift,感觉Swift是一门大杂烩类型的语言,我会记录一些我自认为以前遇到较少或者需要重点记忆的语法特性,在此作为分享,本文详细介绍了关于Swift重写和重载的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.重载: 函数名相同,参数名/参数类型/参数个数不同 重载函数并不仅仅局限于构造函数 函数重载是面相对象程序设计语言的重要标志 OC 不支持函数重载,OC 的替代方式是 withXXX- 2.重写: 也叫覆盖,指在子类中定义一个与父类中方法同

  • Swift用final关键字来防止重写

    final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作.Swift中,final关键字可以在class.func和var前修饰. 通常大家都认为使用final可以更好地对代码进行版本控制,发挥更佳的性能,同时使代码更安全.下面通过实例代码给大家介绍swift用final关键字来防止重写. /** 用final关键字来防止重写 final,最后的,最终的;决定性的;不可更改的 final 修饰类的话,表示这个类不可以被继承. 如果修饰属性或者方法,表示相应的属性或

  • 深入理解Java中的final关键字_动力节点Java学院整理

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如

  • 详解Java中的final关键字的使用

    final含义 final是Java中的一个保留关键字,可以声明成员变量.方法和类.一旦你将引用声明为final类型,你将不能再改变这个引用了.编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误. final变量 凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫做final变量.下面是final修饰变量的例子: final int constValue = 1; // constValue = 2; The final local v

  • Java中的final关键字详解及实例

    Java中的final关键字 1.修饰类的成员变量 这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修改. 上面的代码对age进行初始化后就不可再次赋值,否则编译时会报类似上图的错误. 如果修饰的是引用类型的变量,那么初始化后就不能让他指向另一个对象,如下图所示 2.修饰方法 用final关键字修饰的方法是不能被该类的子类override(重写),因此,如果在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的. 注:类的private方法会

  • Java中的final关键字深入理解

     java final关键字详解: 前言: Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例.final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的. final关键字的含义? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,

  • java中final关键字使用示例详解

    final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的.final关键字的含义?final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误.什么是final变量?凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量.final变量经常和static关键字一起使用,

  • 详解Java编程中static关键字和final关键字的使用

    Java static关键字以及Java静态变量和静态方法 static 修饰符能够与变量.方法一起使用,表示是"静态"的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同. 请看下面的例子: public class Demo { static int i = 10; int j; Demo() { this.j

  • 深入解析Java编程中final关键字的使用

    在Java中声明属性.方法和类时,可使用关键字final来修饰.final变量即为常量,只能赋值一次:final方法不能被子类重写:final类不能被继承. 1.final成员 声明 final 字段有助于优化器作出更好的优化决定,因为如果编译器知道字段的值不会更改,那么它能安全地在寄存器中高速缓存该值.final 字段还通过让编译器强制该字段为只读来提供额外的安全级别.   1.1关于final成员赋值 1)在java中,普通变量可默认初始化.但是final类型的变量必须显式地初始化.   2

  • Android源码中final关键字的用法及final,finally,finalize的区别

    hi 大家好,今日,天气剧变,非常冷,不想出门,于是给大家写了篇文章,关于android final关键字及final,finally,finalize的区别相关知识,具体详情如下所示: 先预告一下,下文中仅涉及java语法的讨论,和Android源码关系不大,请不要有阅读压力. 我发现在Android的源码中很多地方对final关键字的用法很是"别出心裁",之所以这么说是因为我从没看过是这么使用final关键字的,一个典型的例子是View类中onScrollChanged方法(不妨将

  • 学习Java的static与final关键字

    static:(静态修饰符)面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修饰的成员变量一般称作类成员变量,而static修饰的方法一般称作类方法. 分类: 1.static变量,也叫作静态变量或者类变量.另一种是没有被static修饰的变量,叫实例变量. 2.static方法,也叫作静态方法或者类方法,静态方法中不能定义静态变量,实例方法也不能. 3.static代码块,静态块中,可以访问静态变量,调用静态方法. 注意事项: 1.static不依附于任何对

随机推荐