如何从基类型返回派生类型

时间:2012-10-01 17:58:43

标签: c# polymorphism

我有一个基类Sport,它有一个属性将返回适用于给定派生类型的对象类型(例如,Billiards扩展Sport,属性将返回BilliardBall类型)。

有没有比在Sport类中使用大型if语句更好的方法(如果此对象是Billiards实例,则返回BilliardBall,否则返回...)?

1 个答案:

答案 0 :(得分:5)

你为什么在这里谈论仿制药?为什么体育运动知道所有的运动?

对于初学者,您可以执行以下操作:

public interface IBall
{
}
public class BilliardBall : IBall
{
}
public abstract class Sport
{
    protected abstract IBall Ball { get; }

}
public class Billiards : Sport
{
    protected override IBall Ball
    {
        get { return new BilliardBall(); }
    }
}
相关问题