如果我将变量移动到BaseClass中,我无法在SubClassA和SubClassB中指定它的正确子类,说我无法覆盖它.如果我在BaseClass中使用此实例变量的公共父类,我将失去对SubClassA和SubClassB如何工作之间不常见的事物的访问权限.
这是一个更原始的例子,但是我正在尝试做的基础知识.这个例子显然不起作用.我唯一的选择是选择在SubClassA和SubClassB中定义常用功能还是有正确的方法来实现我的目标?
class BaseClass: NSObject { var myObject: MyObject } class SubClassA: BaseClass { override var myObject: MyObjectA } class SubClassB: BaseClass { override var myObject: MyObjectB } class MyObject: NSObject { } class MyObjectA: MyObject { } class MyObjectB: MyObject { }
这给了我错误:
Property ‘myObject’ with type ‘MyObjectA’ cannot override a property with type ‘MyObject’
class MyObject { } class MyObjectA: MyObject { } class MyObjectB: MyObject { } class BaseClass<T> where T : MyObject { var myObject: T? } class SubClassA: BaseClass<MyObjectA> { } class SubClassB: BaseClass<MyObjectB> { }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。