重写:重写是指重写基类的方法。注意:基类的方法一定要使用virtual修饰符,派生类的方法一定要使用override修饰符。
例:
public class A
{
public virtual void Show()
{
Console.Write("父类");
}
}
public class B : A
{
public override void Show()
{
Console.Write("子类");
}
}
static void Main(string[] args)
{
A sup = new B();
sup.Show();
Console.Read();
}
结果为:子类。
多态:同一种操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。
在C#中,多态性通过派生类复写基类中的虚函数型方法来实现
例:public class Animal{
public virtual void Eat(){
Console.WriteLine("Eat something");
}
}
public class Cat : Animal{
public override void Eat(){ //完全取代基类方法
Console.WriteLine("Eat small fishes!");
}
}
public class Dog : Animal{
public override void Eat(){ //完全取代基类方法
Console.WriteLine("Eat small bones!");
}
}
static void Main(string[] args){
Animal mycat = new Cat();
Animal mydog = new Dog();
mycat.Eat();
mydog.Eat();
}
运行结果:Eat small fishes!
Eat small bones!
重载:
用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用。
public void test(int x,int y){}
public void test(int x,ref int y){}
public void test(int x,int y,string a){}
重载特征:
I.方法名必须相同
II.参数列表必须不相同,与参数列表的顺序无关
III.返回值类型可以不相同