关于New初始化问题(C#)

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:01:16
(Xkzi.Data是命名空间,DbOperHandler是一个public abstract类,)

请问new Xkzi.Data.DbOperHandler doh = null;怎么理解?
abstract类可以用New吗?着重解释前new?

比喻
ClassA A=new ClassA();
我们可以分开成两条语句理解
ClassA A=null;
A=new ClassA();
第一条语句会在堆栈上开辟一个空间存储指向实例的内存地址。 此时ClassA A=null 不会指向任何地址
第二句会在托管堆上创建一个ClassA 的实例。
这时A变量中存放的就是托管堆上ClassA实例的内存地址。
就是这样

把abstract类给new了?

这是声明一个DbOperHandler类的变量,因为是abstract类所以不能实例化,只有他的子类可以,好像要去掉new吧,不然会报错呀

abstract抽象类不能new
继承的非抽象类可以new
然后用基类引用指向子类完成多态