天天看点

python重写和重载的区别_(C#)重载和重写的区别

重载方法

是指在类中有两个或两个以上的同名方法,但各个方法中的参数类型、参数个数或顺序不同。

class Program

{

public int Addition(int x)

{ return x+x;}

public int Addition(int x,int y)

{ return x + y;}

public int Addition(float x,float y)

{ return x + y; }

public int Addition(int x,float y)

{ return x + y; }

public int Addition(float y,int x)

{ return x + y; }

}

为什么要引入重载方法?

重载(overload)是指定义多个名称相同的方法,通过定义不同的输入参数或者返回值类型来区分这些方法。

public void myTest(int x,int y){}

public void myTest(double x,ref int y){}

public void myTest(int x,int y,string a){} 总结重载的特征:

1、方法名必须相同。

2、参数列表必须不相同,与参数列表的顺序无关。

3、返回值类型可以不同

重写方法

如果一个实例方法的声明中含有override 修饰符,则称之为重写方法。重写方法

用相同的签名覆盖所继承的虚方法或抽象方法。

【示范代码:先定义一个抽象基类,并在其中定义一个抽象方法和一个虚方法】

public abstract class BaseClass //定义一个抽象基类

{

public abstract void ShowInfo(); //声明抽象方法

public virtal void OutInfo() //定义虚方法

{

Console.WriteLine("这是基类的虚方法!");

}

}

public class SonClass:BaseClass //实现抽象基类BaseClass

{

public override void ShowInfo() //重写基类的抽象方法

{

Console.WriteLine("重写基类的抽象方法");

}

public override void OutInfo() //重写基类的虚方法

{

Console.WriteLine("重写基类的虚方法");

}

}