IOS面试题——Swift访问控制(14)
一 面试题汇总
- Swift访问控制有哪几种访问级别?分别是什么?
- 访问级别的使用准则?一个实体不可以被更低访问级别的实体定义
- 元组类型,泛型类型的访问级别如何确定?
- 类型的访问级别对其成员,嵌套类型的影响?
- 子类重写成员的访问级别有什么限制? ≥ 子类的访问级别,或者 ≥ 父类被重写成员的访问级别
- 协议定义的方法,枚举类型的case等是否能单独设置访问级别?
- public类的默认初始化器是internal级别。如果一个public类想在另一个模块调用编译生成的默认无参初始化器,必须显式提供public的无参初始化器
二 面试题解答(仅供参考)
2.1 Swift访问控制有哪几种访问级别?分别是什么?
1 | 在 Swift 中,访问控制有五种访问级别,分别是: |
2.2 访问级别的使用准则?一个实体不可以被更低访问级别的实体定义
1 | 在 Swift 中,访问级别的使用准则如下: |
2.3 元组类型,泛型类型的访问级别如何确定?
1 | 在 Swift 中,元组类型和泛型类型的访问级别遵循「最严格访问级别」的原则: |
2.4 类型的访问级别对其成员,嵌套类型的影响?
1 | 在 Swift 中,类型的访问级别会影响其成员和嵌套类型的默认访问级别,但它们可以单独设置,需遵循以下规则: |
2.5 子类重写成员的访问级别有什么限制? ≥ 子类的访问级别,或者 ≥ 父类被重写成员的访问级别
1 | 在 Swift 中,子类重写成员的访问级别有以下限制: |
2.6 协议定义的方法,枚举类型的case等是否能单独设置访问级别?
1 | 协议的方法、枚举的 case 访问级别,都会跟随它们所属的协议或枚举,无法单独设置。 |
2.7 public类的默认初始化器是internal级别。如果一个public类想在另一个模块调用编译生成的默认无参初始化器,必须显式提供public的无参初始化器
1 | 总结: |
三 参考
- 简书—Swift访问控制