加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – public static vs open static vs public class vs ope

发布时间:2020-12-14 05:29:23 所属栏目:百科 来源:网络整理
导读:随着 Swift 3中open关键字的引入,以下是一个方法的有效范围修饰符:open static,public static,open class,public class,但它们的区别究竟是什么?我知道public应该相当于Java中的public final,允许重写开放类方法和变量,但是公共类func或open static func是
随着 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()方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读