重写、多态和重载

重写:重写是指重写基类的方法。注意:基类的方法一定要使用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.返回值类型可以不相同 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值