C#關鍵字-修飾詞abstract、virtual的區別
修飾詞abstract和virtual的最明顯區別是什麼?
abstract 抽象方法,一個方法的前面加了修飾詞abstract,表示其方法還沒被實作,
而後繼承的衍生類別(子類別)的方法前加上修飾詞override來實作父類別所宣告的抽象方法。
當一個方法被宣告為 abstract 時,其類別也要一併宣告成 abstract。
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Toyata86 Toyata86 = new Toyata86();
Toyata86.description = "Drift King";
Toyata86.CarData();
Console.ReadKey();
}
}
interface ICar
{
void CarData();
}
abstract class CarToyata : ICar
{
public abstract void CarData();
public string description { get; set; }
}
class Toyata86 : CarToyata
{
public override void CarData()
{
Console.WriteLine("Car Weight is 1280 kg");
Console.WriteLine("Car length is 4240 mm");
Console.WriteLine("Car width is 1775 mm");
Console.WriteLine("Car height is 1320 mm");
}
}
}
virtual 虛擬方法,一個方法的前面加了修飾詞virtual,表示方法除了自己有實作之外,
還可以被子類別底下以override或new修飾詞的方法覆寫。
參考資料: