接口 - 属性 在基础 class 中定义
Interfaces - property defined in a base class
我可以保证所有从我的 ICharacter 接口派生的 classes 也将继承自 MonoBehaviour class. MonoBehaviour class 有一个 属性 transform.
然而下面显然失败了,因为接口没有实现 transform 属性:
ICharacter character;
var t = character.transform;
是否可以在不创建另一个继承自 MonoBehaviour(即 MyCharacter : Character : MonoBehaviour)的父项 class 的情况下完成上述工作?我尝试向界面添加 transform 属性,但它随后隐藏了父 class.
的 属性
基本上我需要使用接口以某种方式调用基 class 的 属性。
为我的角色制作一个基础 class 似乎是可行的,但我不能保证可以从同一个 角色 [=41] 继承所有这些角色=].然而,所有这些都将 100% 继承自 MonoBehaviour class.
如果您希望所有 ICharacter
类型都有一个 transform
成员,那么它应该在接口中。
当一个类型实现了一个接口并且一个基 class 有一个合适的成员时,该成员不需要重新实现; base class 成员可以绑定到接口。
此外,如果您需要提供仅通过接口公开的实现,则可以显式实现接口。
我可以保证所有从我的 ICharacter 接口派生的 classes 也将继承自 MonoBehaviour class. MonoBehaviour class 有一个 属性 transform.
然而下面显然失败了,因为接口没有实现 transform 属性:
ICharacter character;
var t = character.transform;
是否可以在不创建另一个继承自 MonoBehaviour(即 MyCharacter : Character : MonoBehaviour)的父项 class 的情况下完成上述工作?我尝试向界面添加 transform 属性,但它随后隐藏了父 class.
的 属性基本上我需要使用接口以某种方式调用基 class 的 属性。
为我的角色制作一个基础 class 似乎是可行的,但我不能保证可以从同一个 角色 [=41] 继承所有这些角色=].然而,所有这些都将 100% 继承自 MonoBehaviour class.
如果您希望所有 ICharacter
类型都有一个 transform
成员,那么它应该在接口中。
当一个类型实现了一个接口并且一个基 class 有一个合适的成员时,该成员不需要重新实现; base class 成员可以绑定到接口。
此外,如果您需要提供仅通过接口公开的实现,则可以显式实现接口。