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

c#繼承中的函數調用

編輯:C#入門知識

c#繼承中的函數調用


首先看下面的代碼:

using System;

namespace Test
{
	public class Base
	{
		public void Print()
		{
			Console.WriteLine(Operate(8, 4));
		}

		protected virtual int Operate(int x, int y)
		{
			return x + y;
		}
	}
}
namespace Test
{
	public class OnceChild : Base
	{
		protected override int Operate(int x, int y)
		{
			return x - y;
		}
	}
}
namespace Test
{
	public class TwiceChild : OnceChild
	{
		protected override int Operate(int x, int y)
		{
			return x * y;
		}
	}
}
namespace Test
{
	public class ThirdChild : TwiceChild
	{
	}
}
namespace Test
{
	public class ForthChild : ThirdChild
	{
		protected new int Operate(int x, int y)
		{
			return x / y;
		}
	}
}
namespace Test
{
	class Program
	{
		static void Main(string[] args)
		{
			Base b = null;
			b = new Base();
			b.Print();
			b = new OnceChild();
			b.Print();
			b = new TwiceChild();
			b.Print();
			b = new ThirdChild(); 
			b.Print();
			b = new ForthChild();
			b.Print();
		}
	}
}

看結果:



從結果中可以看出:使用override重寫之後,調用的函數是派生的最遠的那個函數,使用new重寫則是調用new之前的派生的最遠的函數,即把new看做沒有重寫似的。



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