菜鸟提问:这个抽象类是怎么实现的?
TypeBI typeBI= BusinessFactory.CreateTypeBI();
系统运行时候BusinessFactory.CreateTypeBI()返回了一个TypeBO类赋值给了typeBI
分析:
TypeBI是一个接口,TypeBO是继承且实现了TypeBI的类。
BusinessFactory是一个抽象类如下:
public abstract class BusinessFactory
{
protected BusinessFactory();
public static BusinessFactory BusinessFactory { get; }
public abstract TypeBI CreateTypeBI();
}
DBBusinessFactory继承且实现BusinessFactory的类,如下:
public class DBBusinessFactory : ABusinessFactory
{
public override TypeBI CreateTypeBI()
{
return new TypeBO();
}
}
疑问如下:
1.abstract class BusinessFactory,这个抽象类中定义
public static BusinessFactory BusinessFactory { get; }
抽象类可以作为静态变量吗?
2.TypeBI typeBI= BusinessFactory.CreateTypeBI();
调用CreateTypeBI()这个方法的时候,实际调用的是DBBusinessFactory的override TypeBI CreateTypeBI()吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你好,我重新修改了问题,能麻烦再看看吗
不是静态的方法,CreateTypeBI是抽象方法,BusinessFactory也是抽象类,可能是软件公司封装起来了,断点测试的时候CreateTypeBI(),还确实返回了一个实例TypeBO,不知道是怎么做到的
VS2010怎么也不报错的。。
CreateTypeBI是BusinessFactory接口的静态方法吧?只要是静态方法就不需要实现就可以调用的.
仔细看看吧.