繁体   English   中英

是否可以从其父类的构造函数返回子类

[英]Is it possible to return a child class from the constructor of its parent class

我知道这是行不通的,因为类的构造函数是无效的:

class ParentClass
{
    public ParentClass(int case)
    {
       if(case==1) 
           return new ChildClass1();
       else 
           return new ChildClass2();
    }
}

有什么办法做到这一点。

不,没有办法,但是...听起来像是作为静态方法实现的工厂模式:

class ParentClass
{ 
    // "disable" ctor for public use but 
    // allow for children
    protected ParentClass() { }

    public static ParentClass CreateInstance(int @case)
    {
       if(@case==1) 
           return new ChildClass1();
       else 
           return new ChildClass2();
    }
}

用法:

var parentClass=  ParentClass.CreateInstance(1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM