美文网首页
Swift中的final修饰符

Swift中的final修饰符

作者: 霏誠拜咬o | 来源:发表于2016-06-02 16:21 被阅读0次

    Swift中的final修饰符可以防止类(class)被继承,还可以防止子类重写父类的属性、方法以及下标。需要注意的是,final修饰符只能用于类,不能修饰结构体(struct)和枚举(enum),因为结构体和枚举只能遵循协议(protocol)。虽然协议也可以遵循其他协议,但是它并不能重写遵循的协议的任何成员,这就是结构体和枚举不需要final修饰的原因。

    final修饰符的几点使用原则

    final修饰符只能修饰类,表明该类不能被其他类继承,也就是它没资格当父类。

    final修饰符也可以修饰类中的属性、方法和下标,但前提是该类并没有被final修饰过。

    final不能修饰结构体和枚举。

    代码示例

    
    final class Train{//Todo...}class MaglevTrain: Train{// 编译失败//Todo...}
    
    

    上面代码中,因为Train类被final修饰过,所以当MaglevTrain类继承了Train后,编译器会提示错误。

    
    class Train {
        final func method() {
            //Todo...
        }
    }
    class Maglev Train:Train{  
            override func method(){  
            // 编译失败//Todo...}
    }
    
    

    上面的代码中,因为Train类中的method方法被final修饰过,所以当子类MaglevTrain重写父类的method方法时,编译器会提示错误。

    相关文章

      网友评论

          本文标题:Swift中的final修饰符

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