c# 繼承快速入門

在面向對象當中繼承是非常重要的,也是面向對象的三大特性之一(繼承、封裝、多態),今天我們來揭開他的神秘面紗。

話不多說,我們上菜。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


/**
 * 假設我們公司有兩種程序員:
 * java程序員指的是用java語法寫程序的程序員,用Jpro這個類表示;
 * C#程序員指的是用C#語法寫程序的程序員,用Cpro這個類來表示。
 * 每個類都有一個WriteCode()方法。
 * 都屬於程序員,用Programmer這個類表示。
 * 現在公司來瞭一個項目,要求派某個程序員寫一個程序。
 */
namespace inheritApplication
{
  //程序員類(基類)
  class Programmer
  {
    public string name = "我是程序員";
  }
  //java程序員類
  class Jpro 
  {
    public string name = "java程序員";
    public string language = "我用java語法寫代碼";
  }
  //C程序員類
  class Cpro 
  {
    public string name = "C#程序員";
    public string language = "我用C#語法寫代碼";
  }
  //編寫項目類
  class Pro : Programmer //繼承基類
  {
    public void WriteProgram(Jpro program) //繼承java程序員類
    {
      Console.WriteLine("" + program.name + ":" + name + "," + program.language + "");
    }
    public void WriteProgram(Cpro program)
    {
      Console.WriteLine("" + program.name + ":" + name + "," + program.language + "");
    }
  }
  //主程序
  class Program
  {
    static void Main(string[] args)
    {
      Pro p = new Pro();
      Jpro p1 = new Jpro();
      p.WriteProgram(p1);
      Cpro p2 = new Cpro();
      p.WriteProgram(p2);
      Console.ReadKey();
    }
  }
}

寫好代碼後我們運行看看效果!

很顯然看出來,公司兩個程序員都繼承瞭程序員類。

總結:

父類包含瞭多少內容,派生類(子類)全部接受(包括屬性 字段 方法等),

可以重寫覆蓋,使用override重寫,可以使用base調用父類中的內容。

繼承可以減少代碼的冗餘,也為程序的修改提供瞭很大的方便之處。

當然,如果結合接口那就完美瞭,下一篇中我們將提到接口的實現。

以上就是c# 繼承快速入門的詳細內容,更多關於c# 繼承的資料請關註WalkonNet其它相關文章!

推薦閱讀: