wangyihu2009

博客园 首页 联系 订阅 管理
public abstract class Fruit<T>
    where T : Fruit<T>, new()
{
    public static T CreateInstance()
    {
        T newFruit = new T();
        newFruit.Initialize();  // Calls Apple.Initialize
        return newFruit;
    }

    protected abstract void Initialize();
}

public class Apple : Fruit<Apple>
{
    protected override void Initialize() { ... }
}
Apple myAppleVar = Fruit<Apple>.CreateInstance();

参考:http://stackoverflow.com/questions/1380087/whats-the-correct-alternative-to-static-method-inheritance

  

 

posted on 2016-11-30 13:36  wangyihu2009  阅读(227)  评论(0)    收藏  举报