标签:
今天在一个编程群里有个群友问A a=new B()(B继承了A)是什么实例类型,怎么GetType()方法出来的是B类型。因为今天比较晚了,所以今天就跟大家分享下类实例的几种情况。
1、A a =new A();这种实例没什么说的就是A类的实例,也是我们用的最多的一种类的实例。
2、A a=new B();这种情况和今天哪群友问我的一样,这种实例一般是用在抽象类中,因为抽象类不能实例化,所以他要引用子类;不过如果不是用在抽象类的话,这个实例名也是A类的实例。
3、A a=B.prind();这种实例化,在B类中priind方法的返回值都会是A类的实例;如
public class B
{
public static A prind()
{
return new A();
}
}
类的实例大概就有这三种,哪么还有一个问题就是GetType方法他读取的类型是什么呢?
其实GetType方法他所读取的是这个实例名是从哪里来的,所以第一种情况GetType所读取的是子类B;但是对于第三种情况所读取的是A,因为方法里new的是A类本身。
如有不正确的欢迎吐槽指正。。。。。。。。。。。
标签:
原文地址:http://www.cnblogs.com/ljhboke/p/5052811.html