swift – public static vs open static vs public class vs open class?

前端之家收集整理的这篇文章主要介绍了swift – public static vs open static vs public class vs open class?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
随着 Swift 3中open关键字的引入,以下是一个方法的有效范围修饰符:open static,public static,open class,public class,但它们的区别究竟是什么?我知道public应该相当于Java中的public final,允许重写开放类方法和变量,但是公共类func或open static func是什么意思?它们是公共静态函数的同义词吗?即所有3个实现都不允许子类覆盖?在特定情况下,4种不同排列中的每一种都有独特的优势吗?
这个问题不必要地复杂,因为你比较两个变量(开放对公共和静态与类)的笛卡尔积的成员,而不是分别询问这两个变量.

这不是开放静态vs公共静态vs开放类vs公共类的问题,而是开放vs公共和静态vs类.它们是两个正交的维度.

公开对公众

上市:

在模块中,公共访问说明符允许访问和覆盖.

从模块外部,公共访问说明符允许访问,但不允许覆盖/子类.

打开:

在模块中,开放访问说明符允许访问和覆盖.

从模块外部,开放访问说明符允许访问,并允许覆盖/子类.

静态与类

静态的:

静态成员(方法属性)是绑定到其定义的特定范围(类/结构/枚举)的成员.它的名称是这样的,因为始终静态调度对这些成员的访问.这相当于Java的静态.目标C与此无关.

类:

类成员是绑定到类或其子类的成员.类成员可以被子类覆盖.因此,它们在一般情况下是动态调度的,尽管在某些情况下优化器可以对类成员的访问进行虚拟化. Java与此无关.这相当于Objective C的class()方法.

原文链接:https://www.f2er.com/swift/319354.html

猜你在找的Swift相关文章