我有如下类,其中 A : B 表示 A 继承自 B:
GatewayBaseActivity : SDKBaseActivity : AppCompatActivity
和
FormsAppCompatActivity : AppCompatActivity
我该怎么做才能拥有一个具有 GatewayBaseActivity 的所有功能的类,而不是像这样继承:
GatewayBaseActivity : SDKBaseActivity : FormsAppCompatActivity : AppCompatActivity
本质上是将 FormsAppCompatActivity 粘贴在继承树中的 SDKBaseActivity 和 AppCompatActivity 之间。
这些类都来自 Xamarin、Android 和 Airwatch。在不重写一半类的情况下执行此操作的最佳方法是什么?
最佳答案
给定以下层次结构:
class A { }
class B: A { }
class D: B { }
class E: D { }
在明显的地方插入一个类 C
非常简单;你只需要修改D
。
class C: B { }
class D: C { }
如果您不拥有 D
并且无法访问和更改其实现,那么您无能为力;您不能更改第三方实现的基类。
关于c# - 如何在继承链的中间插入类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48833930/