子類可以對父類中的虛方法進行重寫,虛方法是多型特性的一種體現
C#中的虛方法使用virtual關鍵字定義
public virtual void eat();
override關鍵字作用是對父類的virtual方法進行重寫
public override void eat();
程式碼舉例:
using System;
using System.Collections;
public class Animal
{
public Animal() { }
public virtual void eat()
}
public class dog:Animal
public override void eat()
//如果父類的虛方法中有我們需要的資料,可以在子類的覆蓋方法中呼叫它:
//base.eat();
Console.WriteLine("狗吃骨頭");
public class cat:Animal
Console.WriteLine("貓吃魚");
public class panda:Animal
Console.WriteLine("熊貓吃竹子");
public class MainFun
static void Main()
Animal[] anim = new Animal[3];
anim[0] = new dog();
anim[1] = new cat();
anim[2] = new panda();
anim[0].eat();
anim[1].eat();
anim[2].eat();
子類可以對父類中的虛方法進行重寫,虛方法是多型特性的一種體現
C#中的虛方法使用virtual關鍵字定義
public virtual void eat();
override關鍵字作用是對父類的virtual方法進行重寫
public override void eat();
程式碼舉例:
using System;
using System.Collections;
public class Animal
{
public Animal() { }
public virtual void eat()
{
}
}
public class dog:Animal
{
public override void eat()
{
//如果父類的虛方法中有我們需要的資料,可以在子類的覆蓋方法中呼叫它:
//base.eat();
Console.WriteLine("狗吃骨頭");
}
}
public class cat:Animal
{
public override void eat()
{
Console.WriteLine("貓吃魚");
}
}
public class panda:Animal
{
public override void eat()
{
Console.WriteLine("熊貓吃竹子");
}
}
public class MainFun
{
static void Main()
{
Animal[] anim = new Animal[3];
anim[0] = new dog();
anim[1] = new cat();
anim[2] = new panda();
anim[0].eat();
anim[1].eat();
anim[2].eat();
}
}