程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中派生類挪用基類結構函數用法剖析

C#中派生類挪用基類結構函數用法剖析

編輯:C#入門知識

C#中派生類挪用基類結構函數用法剖析。本站提示廣大學習愛好者:(C#中派生類挪用基類結構函數用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中派生類挪用基類結構函數用法剖析正文


本文實例講述了C#中派生類挪用基類結構函數用法。分享給年夜家供年夜家參考。詳細剖析以下:

這裡的默許結構函數是指在沒有編寫結構函數的情形下體系默許的無參結構函數

1、當基類中沒有本身編寫結構函數時,派生類默許的挪用基類的默許結構函數
例如:

public class MyBaseClass
{
}
public class MyDerivedClass : MyBaseClass
{
  public MyDerivedClass()
  {
   Console.WriteLine("我是子類無參結構函數");
  }
  public MyDerivedClass(int i)
  {
   Console.WriteLine("我是子類帶一個參數的結構函數");
  }
  public MyDerivedClass(int i, int j)
  {
   Console.WriteLine("我是子類帶二個參數的結構函數");
  }
}

此時實例化派生類時,挪用基類默許結構函數

2、當基類中編寫結構函數時,派生類沒有指定挪用結構哪一個結構函數時,會尋覓無參的結構函數,假如沒有則報錯,別的不管挪用派生類中的哪一個結構函數都是尋覓無參的誰人基類結構函數,而非參數婚配。
例如:

public class MyBaseClass
{
  public MyBaseClass(int i)
  {
   Console.WriteLine("我是基類帶一個參數的結構函數");
  }
 }
 public class MyDerivedClass : MyBaseClass
 {
  public MyDerivedClass()
  {
   Console.WriteLine("我是子類無參結構函數");
  }
  public MyDerivedClass(int i)
  {
   Console.WriteLine("我是子類帶一個參數的結構函數");
  }
  public MyDerivedClass(int i, int j)
  {
   Console.WriteLine("我是子類帶二個參數的結構函數");
  }
}

此時實例化派生類時則報錯

3、基類中編寫了結構函數,則派生類中可以指定挪用基類的某個結構函數,應用base症結字。
例如

 public class MyBaseClass
 {
  public MyBaseClass(int i)
  {
   Console.WriteLine("我是基類帶一個參數的結構函數");
  }
 }
 public class MyDerivedClass : MyBaseClass
 {
  public MyDerivedClass() : base(i)
  {
   Console.WriteLine("我是子類無參結構函數");
  }
  public MyDerivedClass(int i) : base(i)
  {
   Console.WriteLine("我是子類帶一個參數的結構函數");
  }
  public MyDerivedClass(int i, int j) : base(i)
  {
   Console.WriteLine("我是子類帶二個參數的結構函數");
  }
 }

此時實例化派生類時應用的帶一個參數的結構函數時,則不會報錯,由於他指定了基類的結構函數。

4、假如基類中的結構函數不含有沒有參結構函數,那末派生類中的結構函數必需全體指定挪用的基類結構函數,不然失足
例如

 public class MyBaseClass
 {
  public MyBaseClass(int i)
  {
   Console.WriteLine("我是基類帶一個參數的結構函數");
  }
 }
 public class MyDerivedClass : MyBaseClass
 {
  public MyDerivedClass()
  {
   Console.WriteLine("我是子類無參結構函數");
  }
  public MyDerivedClass(int i) : base(i)
  {
   Console.WriteLine("我是子類帶一個參數的結構函數");
  }
  public MyDerivedClass(int i, int j)
  {
   Console.WriteLine("我是子類帶二個參數的結構函數");
  }
}

此時編譯將不克不及經由過程

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved