我需要实现许多类的基本行为。举一个例子,假设它是一种绘图行为:可以绘制很多不同类型的对象,并且它们都需要一些属性和一些通用代码来实现绘图过程。假设我将这个通用部分放在一个名为Drawable的类中。C#中的基类可以像接口一样继承吗?
问题是这些不同的类可能会扩展其他类,所以我不能让它们从Drawable继承。显而易见的解决方案是使用接口(IDrawable),但后来我无法在其中实现任何代码;我可以想到的另一种解决方案是使用组合,通过创建一个DrawAction类来实现所有类的实例化,但这需要我在所有需要的类中放置相同的代码(如果只是几行)绘制。
有人可以给我关于如何做到这一点的建议吗?谢谢。
听起来落得像你已经有了一个它很好的处理。你的问题具体是什么?是的,基类可以继承,就像接口一样(但是你只能从一个基类继承 - 在C#中没有多继承类)。如果你需要多重继承,你将不得不使用某种组合来获得它。 –
我的问题具体是,我想避免在许多“派生”类中使用组合,我将要:-)请查看以下答案的评论以获得更详细的解释。 – Simone