程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#高級(五)繼承,派生類,派生類的構造方法(2)

C#高級(五)繼承,派生類,派生類的構造方法(2)

編輯:關於C語言
2)、虛方法

把一個基類中的方法聲明為 virtual ,則該函數可以在任何派生類中重寫了。

在C#中,函數默認下不是虛擬的,需要顯式的聲明。但在Java中,所有函數都是虛擬的。C#中,派生類的函數重寫另一個函數時,要使用override 關鍵字顯式的聲明。如果聲明了 override 函數,但在基類中如果沒有可以重寫的函數,編譯器就會報錯了。

注意,成員字段和靜態函數都不能聲明為 virtual ,因為這個概念只對類中的實例函數成員有意義。

我們來看個例子。

using System;
namespace gosoa.com.cn
{
public class baseClass
{
public virtual string getUrl()
{
return "cnblogs.com";
}
}
public class baseClass2:baseClass
{
public override string getUrl()
{
return "gosoa.com.cn";
}
}
public class test : baseClass2
{
public override string getUrl()
{
return "www.gosoa.com.cn";
}
static void Main()
{
test classOne=new test();
Console.WriteLine(classOne.getUrl());
}
}
}

本例的輸出結果是 www.gosoa.com.cn

(3)、隱藏方法。

在上例中,baseClass2類的getUrl()方法,如果沒有override 關鍵字,則baseClass2類的getUrl()方法就會隱藏基類的getUrl()方法。在編譯的時候,系統會給予警告。

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