Code Bye

关于Image newImage = Image.FromFile("SampImag.jpg");的疑问

这是msdn上的例子,可是本人有一个疑问,抽象类不能被实例化,那newImage算什么呢?为什么还能这样用?Image.FromFile()方法的返回值也是Image类型,一个抽象类能作为返回值类型吗?
解决方案

20

20

一个对象可以有许多种类型,声明变量时只要是兼容于对象实例的类型,都是可以通过编译的。所以声明变量的类型可以不是实例化时的类型。
但是,一般来说,编程时都会声明为变量为一个尽可能具体的、准确的类型,而不是对象的多种类型中抽象的那个。
Image.FromFile(…) 即可能返回 Bitmap,也可能返回 Metafile,是两种完全不一样的对象。但是这两中对象都是 Image,所以声明变量为 Image 类型。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于Image newImage = Image.FromFile("SampImag.jpg");的疑问