C#重载和重写

简介: C#重载和重写

什么是重写(override)?

“重写”是指“覆盖在某物之上”=“覆盖”。这是一个与继承密切相关的功能。

重写应重新定义父类方法。当您要更改继承的类中父方法的处理时使用。

public class Sample
{
  public virtual void Test()
  {
    // 处理A
  }
}
class Sample2 : Sample
{
  public override void  Test()
  {
    // 处理B
  }
}

在上述情况下,由于Sample2类继承了Sample类,因此您可以访问Sample类的Test方法。通过在具有这种关系的类中声明与覆盖相同类型和名称的功能,可以覆盖处理内容。当进程被覆盖时,在Sample2类中调用Test方法时,将执行处理B而不是处理A。

可以参考下面的实例:

public class Sample
{
    public virtual void Test()
    {
        Debug.Log ("111");
    }
}
public class Sample2 : Sample
{
    public override void Test()
    {
        base.Test();
        Debug.Log ("222");
    }
}

这时出力的结果为“222”而不是“111”。这样,重写可以重新定义您不想继承的方法或要在继承的类中更改的方法。重写的本意是“建立父子关系”。


什么是重载(Overload)?

重载意味着“超载”。此方法允许您使用相同的名称定义多个成员方法。与重写不同,其中同一事物(结构不同但名称相同的事物)存在于同一基础上。

重载是重载同名的方法和运算符。具有相同名称但参数输入模式多种的方法,


并且可以执行算术运算和使用“ +”进行字符连接。

class Sample
{
  void Test(int A)
  {
    // 处理A
  }
  void Test (string B)
  {
    // 处理B
  }
}

在上述情况下,同一类中有两个Test方法。通常,您不能使用相同的名称定义方法,但是如果类型和参数不同,则可以使用相同的名称声明方法。

在这种情况下,两个方法都存在并且可以被调用。(重载)


总结:

•重写= 重新定义

•重载 = 超载

相关文章
|
6月前
|
编译器 C#
C#重载详解
C#重载详解
57 0
|
6月前
|
C# Python
C# 笔记3 - 重载一系列像python那样的print()方法
C# 笔记3 - 重载一系列像python那样的print()方法
48 1
C#基础⑧——方法(函数、重载、out、ref)
比喻成职能。比喻成一个生产自行车老板,一个地方专门放螺丝,一个地方专门放轮,一个地方专门放车链子,需要组装什么就从那个仓库里面拿就行了。各司其职。
|
缓存 算法 C#
【C#本质论 十】合式类型(一)重写Object成员及操作符重载(下)
【C#本质论 十】合式类型(一)重写Object成员及操作符重载(下)
99 0
|
缓存 算法 编译器
【C#本质论 十】合式类型(一)重写Object成员及操作符重载(上)
【C#本质论 十】合式类型(一)重写Object成员及操作符重载(上)
79 0
|
存储 Java C#
【c#入门杂选】重载,继承,委托
【c#入门杂选】重载,继承,委托
107 0
C#(十七)之C#重载
C#中的重载:包含两个方面,函数重载,运算符重载
97 0
C#(十七)之C#重载
|
C# C++
C# 中多态和重载的区别
一、多态性意味着有多重形式。 在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。   1 using System; 2 using System.Collections.Generic; 3 using System.
1661 0