现在的位置: 首页 > 综合 > 正文

override和overload的区别

2012年02月28日 ⁄ 综合 ⁄ 共 1188字 ⁄ 字号 评论关闭
override 表示重写,用于继承类对基类中虚成员的实现

override 表示重写,用于继承类对基类中虚成员的实现

overload 表示重载,用于同一个类中同名方法不同参数(包括类型不同或个数不同)的实现

示例:
using System;
using System.Collections.Generic;
using System.Text;

namespace Example07
{
   
class Program
    {
       
class BaseClass
        {
           
public virtual void F()
            {
                Console.WriteLine("BaseClass.F");
            }
        }
       
class DeriveClass : BaseClass
        {
           
public override void F()
            {
               
base.F();
                Console.WriteLine("DeriveClass.F");
            }
           
public void Add(int Left, int Right)
            {
                Console.WriteLine("Add for Int: {0}", Left + Right);
            }
           
public void Add(double Left, double Right)
            {
                Console.WriteLine("Add for int: {0}", Left + Right);
            }
        }
       
static void Main(string[] args)
        {
            DeriveClass tmpObj = new DeriveClass();
            tmpObj.F();
            tmpObj.Add(1, 2);
            tmpObj.Add(1.1, 2.2);

            Console.ReadLine();
        }
    }
}
结果:
BaseClass.F
DeriveClass.F
Add for Int: 3
Add for int: 3.3

注意:
1.class DeriveClass : BaseClass 继承父类
2.override void F()重写父类的虚拟方法
3.public void Add(int Left, int Right) 与 public void Add(double Left, double Right) 是overload关系

抱歉!评论已关闭.