当前位置: 首页 > 编程笔记 >

C#中new和override的区别个人总结

喻嘉泽
2023-03-14
本文向大家介绍C#中new和override的区别个人总结,包括了C#中new和override的区别个人总结的使用技巧和注意事项,需要的朋友参考一下

问题:

A类 有方法 public virtual void test()
B类继承自A类,有方法 public new void test() 
如下实例化:

A a = new B(); 
a.test();

会调用哪个类中的TEST方法,最好能详细给我解释一下好吗?先谢谢了!

回答:

如果你用override,则无论调用的是A类还是B类中的TEST(),系统都会找到它实质类的TEST();
如果是用的New,则可以通过类型转换调用到基类的TEST();

下面是override的情况:

A a = new A(); 
B b = new B();
A a1=new B();
a.Test();//调用A中Test();
b.Test();//调用B中Test();
a1.Test();//调用B中Test();系统会自动识别a1是B的实例

((A)b).Test();//与上面相同

下面是new的情况:

A a = new A(); 
B b = new B();
A a1=new B();
a.Test();//调用A中Test();
b.Test();//调用B中Test();
a1.Test();//调用A中Test();
((A)b).Test();//与上面相同
 类似资料:
  • 本文向大家介绍C#中类与接口的区别个人总结,包括了C#中类与接口的区别个人总结的使用技巧和注意事项,需要的朋友参考一下 一.类与接口的区别 类:描述了一个实体,包括实体的状态,也包括实体可能发出的动作。 接口:定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。 1.接口与类区别: (1)接口有点象一个规范、一个协议,是一个抽象的概念; (2)而类则是实现了这

  • 本文向大家介绍python中new和init__的区别?相关面试题,主要包含被问及python中new和init__的区别?时的应答技巧和注意事项,需要的朋友参考一下 init为初始化方法,new方法是真正的构造函数 new是实例创建时被调用的,它的任务是创建并返回这个实例,是静态方法 —init__是实例创建之后被调用的,然后设置对象属性的一些初始值

  • 本文向大家介绍insert into 和 override write区别?相关面试题,主要包含被问及insert into 和 override write区别?时的应答技巧和注意事项,需要的朋友参考一下 解答: insert into:将某一张表中的数据写到另一张表中 override write:覆盖之前的内容。

  • 本文向大家介绍PHP中new static() 和 new self() 的区别介绍,包括了PHP中new static() 和 new self() 的区别介绍的使用技巧和注意事项,需要的朋友参考一下 长夜漫漫啊! 今天领导本地搭建一个站。发现用PHP 5.2 搭建不起来,站PHP代码里面有很多5.3以上的部分,领导让苦逼我更改在5.2下能运行。 改着改着发现了一个地方 这尼玛是神马,只见过 于

  • 问题内容: 这两种实例化类的新对象的方式之间有什么区别,如下所示: 当我尝试以下代码时,我可以看到两个对象都可以访问方法,但是t2无法访问(无法解析): 问题答案: 将创建Test类的对象。 但是将创建一个测试子类的对象(在这种情况下,即匿名内部类)。 您可以在那提供任何方法的实现 这样,当从对象调用方法时,它将打印出来。 加成 代码中的编译时错误是由于缺少条件运算符

  • 本文向大家介绍C# 中 &和&&的区别相关面试题,主要包含被问及C# 中 &和&&的区别时的应答技巧和注意事项,需要的朋友参考一下 答: &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).