- 运算符
new一个Class时,new完成了两方面内容:一是调用new class命令来为实例在托管堆中分配内存;二是调用构造函数来实现对象初始化。
- 修饰符
显示隐藏从基类继承来的成员。虽然可以不用new修饰符情况下隐藏成员,但会生成警告。如果用new关键字显示隐藏成员,则会取消此警告。
无new关键字代码:
有new关键字代码:
结果:
注意:
在子类中用 new 关键字修饰定义的与父类中同名的方法,叫覆盖。覆盖不会改变父类方法的功能。
当子类创建父类时,代码中A c = new B(),覆盖不会改变父类的功能。依然还是调用父类的功能。
- new 约束
new 约束是指泛型类声明中任意参数类型都要有无参构造函数,当与其他约束一起使用时,new约束必须在最后指定。
public class BaseDAL<T> : IDAL.IBaseDAL<T> where T : class,new() { }