首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 多型概念及其應用(一):虛方法定義、覆寫與執行時多型實現

     編輯:關於C語言

多型核心定義

繼承自基類的子類可轉換為基類型。「能用基類的地方,就能用子類。」執行時透過基類參考呼叫子類實作,同一操作呈現不同行為。

四大學習目標

  1. 理解 C# 多型性
  2. 定義虛方法 (virtual)
  3. 覆寫虛方法 (override)
  4. 程式中應用多型

基類:定義虛方法


public class DrawingObject
{
    public virtual void Draw()
    {
        Console.WriteLine("I'm just a generic drawing object.");
    }
}

virtual 允許子類覆寫。基類提供預設實作。

子類:覆寫虛方法


public class Line : DrawingObject
{
    public override void Draw()
    {
        Console.WriteLine("I'm a Line.");
    }
}

public class Circle : DrawingObject
{
    public override void Draw()
    {
        Console.WriteLine("I'm a Circle.");
    }
}

public class Square : DrawingObject
{
    public override void Draw()
    {
        Console.WriteLine("I'm a Square.");
    }
}

override 執行時取代基類實作。條件:透過基類型別參考子類實例。

多型應用範例


DrawingObject[] objects = new DrawingObject[3];
objects[0] = new Line();
objects[1] = new Circle();
objects[2] = new Square();

foreach (DrawingObject obj in objects)
    obj.Draw(); // 執行時依實際型別呼叫對應 Draw()

輸出:

I'm a Line.
I'm a Circle.
I'm a Square.

關鍵條件總結

  • 基類方法標記 virtual
  • 子類方法標記 override
  • 以基類型別變數持有子類實例
  • 執行時依實際物件型別分派方法
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved