C# 为什么Bitmap.FromFile()返回类型为Image的对象

C# 为什么Bitmap.FromFile()返回类型为Image的对象,c#,.net,system.drawing,C#,.net,System.drawing,这是一个非常简单的问题,一直困扰着我,因为几乎每次我写代码时,我都会被绊倒,但这一行 Bitmap image = Bitmap.FromFile("c:\img.jpg"); 我总是凭直觉认为,从类X中名为FromFile的静态方法返回的对象将是X类型 我意识到,如果我愿意,我显然可以回溯到Bitmap,我确信我遗漏了一些东西,但根据标题,为什么Bitmap.FromFile(Path)返回图像而不是位图?这只是一个考虑不周的设计,还是在这个实例中返回父类有更根本的原因?是图像上的一个静态方

这是一个非常简单的问题,一直困扰着我,因为几乎每次我写代码时,我都会被绊倒,但这一行

Bitmap image = Bitmap.FromFile("c:\img.jpg");
我总是凭直觉认为,从类
X
中名为
FromFile
的静态方法返回的对象将是
X
类型

我意识到,如果我愿意,我显然可以回溯到
Bitmap
,我确信我遗漏了一些东西,但根据标题,为什么
Bitmap.FromFile(Path)
返回图像而不是
位图
?这只是一个考虑不周的设计,还是在这个实例中返回父类有更根本的原因?

图像
上的一个静态方法,它是
位图
的基本类型。您可以通过位图访问静态方法,即使您真正调用的是
Image.FromFile
。我想位图可以用它自己返回的位图来隐藏(或阴影化)图像上的from文件,但不管出于什么原因,它并没有这样做


还有其他子类型的
图像
,例如(扩展名为.wmf的图像)。这里的目的是实现多态行为-您可以使用FromFile加载图像,而不必关心用于处理图像的底层实现。

好吧,您应该被它绊倒。编译错误可能会提醒您使用位图构造函数。当然,完全没有注意到它在父级上是静态的。非常感谢你的回答!