程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 函數籠罩總結進修(推舉)

C# 函數籠罩總結進修(推舉)

編輯:C#入門知識

C# 函數籠罩總結進修(推舉)。本站提示廣大學習愛好者:(C# 函數籠罩總結進修(推舉))文章只能為提供參考,不一定能成為您想要的結果。以下是C# 函數籠罩總結進修(推舉)正文


籠罩類成員:經由過程new症結字潤飾虛函數表現籠罩該虛函數。

一個虛函數被籠罩後,任何父類變量都不克不及拜訪該虛函數的詳細完成。

public virtual void IntroduceMyself(){...}//父類虛函數

public new void IntroduceMyself(){...}//子類籠罩父類虛函數

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

namespace MethodOverrideByNew
{
  public enum Genders { 
    Female=0,
    Male=1
  }
  public class Person {
    protected string _name;
    protected int _age;
    protected Genders _gender;
    /// <summary>
    /// 父類結構函數
    /// </summary>
    public Person() {
      this._name = "DefaultName";
      this._age = 23;
      this._gender = Genders.Male;
    }
    /// <summary>
    /// 界說虛函數IntroduceMyself()
    /// </summary>
    public virtual void IntroduceMyself() {
      System.Console.WriteLine("Person.IntroduceMyself()");
    }
    /// <summary>
    /// 界說虛函數PrintName()
    /// </summary>
    public virtual void PrintName() {
      System.Console.WriteLine("Person.PrintName()");
    }
  }
  public class ChinesePerson :Person{
    /// <summary>
    /// 子類結構函數,指明從父類無參結構函數挪用起
    /// </summary>
    public ChinesePerson() :base(){
      this._name = "DefaultChineseName";
    }
    /// <summary>
    /// 籠罩父類辦法IntroduceMyself,應用new症結字潤飾虛函數
    /// </summary>
    public new void IntroduceMyself() {
      System.Console.WriteLine("ChinesePerson.IntroduceMyself()");
    }
    /// <summary>
    /// 重載父類辦法PrintName,應用override症結字潤飾虛函數
    /// </summary>
    public override void PrintName(){
      System.Console.WriteLine("ChinesePerson.PrintName()");      
    }
  }

  class Program
  {
    static void Main(string[] args)
    {
      //界說兩個對象,一個父類對象,一個子類對象
      Person aPerson = new ChinesePerson();
      ChinesePerson cnPerson = new ChinesePerson();
      //挪用籠罩的辦法,父類對象不克不及挪用子類籠罩過的辦法,只能挪用本身的虛函數辦法
      aPerson.IntroduceMyself();   
      cnPerson.IntroduceMyself();
      //挪用重載辦法,父類對象和子類對象都可以挪用子類重載事後的辦法
      aPerson.PrintName();
      cnPerson.PrintName();

      System.Console.ReadLine();
    }
  }
}

成果:

Person.IntroduceMyself()

ChinesePerson.IntroduceMyself()

ChinesePerson.PrintName()

ChinesePerson.PrintName()

以上這篇C# 函數籠罩總結進修(推舉)就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。

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