首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建继承Ellipse类的子类

如何创建继承Ellipse类的子类
EN

Stack Overflow用户
提问于 2014-02-13 15:26:55
回答 4查看 2.2K关注 0票数 4

我对C#语言很陌生,在创建继承某些类属性的子类方面遇到了一些困难。我正在使用Visual 2012创建Windows 8应用程序。

我在继承像Button或TextBox这样的类方面没有问题,但是我不能让它继承Ellipse类。我可以继承Shape类,从中派生Ellipse,但不能继承Ellipse本身。

这个想法是在我创建的椭圆中添加一些属性,这样我就可以跟踪用户按这些椭圆的顺序。我可以使用另一个类,或者使用Ellipse本身(并使用它已经存在的属性),但是为了学习目的,我想知道为什么我不能(或者如何)继承Ellipse类。

代码语言:javascript
复制
public partial class Ball : Ellipse
{
     ...
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-13 15:43:52

因为Ellipsesealed,而sealed的意思是“不能继承”,所以不能继承它。

另外,您可以使用装饰图案,这有助于我们在没有继承的情况下扩展类的行为。

代码语言:javascript
复制
public abstract class ShapeDecorator : Shape {
     protected Shape Shape {get; private set;}

     protected(Shape shape) {
          this.Shape = shape;
     }
}

public abstract class EllipseDecorator : ShapeDecorator {
      protected(Ellipse ellipse) : base(shape) {
      }

      public Ellipse Ellipse { get { (Ellipse)base.Shape; } }

      // Here, if you wish, you can override some methods using Ellipse features inside
      // So that your Shape acts as Ellipse
}

public class Ball : EllipseDecorator {
    public Ball() : base(new Ellipse()) {
         // you can initialize base.Ellipse here
    }

    // Now you can add your Ball specific methods here
    // You can still override some methods here
    // So that your ellipse acts as Ball
}

现在,如果任何方法需要Ellipse类型的参数,则可以传递ball.Ellipse。如果它接受Shape类型的参数,则可以直接传递Ball对象。

票数 4
EN

Stack Overflow用户

发布于 2014-02-13 15:28:40

不行,Ellipsesealed

你可以把它包装起来,但你不能继承它。

代码语言:javascript
复制
public class MyEllipse: Shape
{
   private Ellipse _Ellipse;

   // pass through overridden Shape methods/properties to the underlying Ellipse

   // add custom methods/properties.
}
票数 6
EN

Stack Overflow用户

发布于 2014-02-13 15:28:33

Ellipse被定义为sealed

代码语言:javascript
复制
public sealed class Ellipse : Shape

sealed意味着

当应用于类时,密封修饰符将阻止其他类从该类继承。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21758432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档