7.override 和 overload 的區別?
答:
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