2015-10-23 33 views
2

我想在其子类中使用超类的私有成员和方法,但仍不希望它们在实例级别上可见。那么,我认为Swift中没有这种可能性,因为它只有私有/内部/公共访问修饰符。但也许有一些解决方法?在Swift中访问超类的私有方法

我听说过其他语言中受欢迎的受保护的修饰语,但它实际上与我的观点相反。所有语言都没有这种可能性吗?如果我经常在我的子类层次结构中需要这个东西,我做错了什么?

回答

1

你可以有一个子类访问它的超类的私有成员,但它必须与超类在同一个文件中。隐私适用于文件外部。文件中的任何内容都可以访问私有成员。这不直观。这里是一个简单的操场来演示。由于Bar是在同一个文件中声明的,因此它可以访问Fooprivate x成员。 enter image description here

斯威夫特编程语言(雨燕2.1)访问级别,“私接限制使用的实体到它自己的文件。”