真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#如何改寫方法

這篇文章給大家分享的是有關(guān)C#如何改寫方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司是一家專業(yè)提供孟連企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為孟連眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

C#改寫方法

面向?qū)ο笤O(shè)計的重要原則就是多態(tài)性。不要理會高深的理論,多態(tài)性意味著:當(dāng)基類程序員已設(shè)計好用于改寫的方法時,在派生類中,你就可以重定義(改寫)基類的方法。基類程序員可以用 virtual 關(guān)鍵字設(shè)計方法:

virtual void CanBOverridden()

當(dāng)從基類派生時,所有你要做的就是在新方法中加入override關(guān)鍵字:

override void CanBOverridden()

當(dāng)改寫一個基類的方法時,你必須明白,不能改變方法的訪問屬性——在這章的后面,你會學(xué)到更多關(guān)于訪問修飾符的知識。

除了改寫基類方法的事實(shí)外,還有另一個甚至更重要的改寫特性。當(dāng)把派生類強(qiáng)制轉(zhuǎn)換成基類類型并接著調(diào)用虛擬方法時,被調(diào)用的是派生類的方法而不是基類的方法。

((BaseClass)DerivedClassInstance)。CanBOverridden();

為了演示虛擬方法的概念,顯示如何創(chuàng)建一個三角形基類,它擁有一個可以被改寫的成員方法(ComputeArea)。

using System;  class Triangle  {  public virtual double ComputeArea(int a, int b, int c)  {  // Heronian formula  double s = (a + b + c) / 2.0;  double dArea = Math.Sqrt(s*(s-a)*(s-b)*(s-c));  return dArea;  }  }  class RightAngledTriangle:Triangle  {  public override double ComputeArea(int a, int b, int c)  {  double dArea = a*b/2.0;  return dArea;  }  }  class TriangleTestApp  {  public static void Main()  {  Triangle tri = new Triangle();  Console.WriteLine(tri.ComputeArea(2, 5, 6));  RightAngledTriangle rat = new RightAngledTriangle();  Console.WriteLine(rat.ComputeArea(3, 4, 5));  }  }

基類Triangle定義了方法ComputeArea.它采用三個參數(shù),返回一個double結(jié)果,且具有公共訪問性。從Triangle類派生出的是RightAngledTriangle,它改寫了ComputeArea 方法,并實(shí)現(xiàn)了自己的面積計算公式。兩個類都被實(shí)例化,且在命名為TriangleTestApp的應(yīng)用類的Main() 方法中得到驗(yàn)證。

我漏了解釋第14行:

class RightAngledTriangle : Triangle

在類語句中冒號(:)表示RightAngledTriangle從類 Triangle派生。那就是你所必須要做的,以讓C#知道你想把Triangle當(dāng)作RightAngledTriangle的基類。

當(dāng)仔細(xì)觀察直角三角形的ComputeArea方法時,你會發(fā)現(xiàn)第3個參數(shù)并沒有用于計算。但是,利用該參數(shù)就可以驗(yàn)證是否是"直角"。

class RightAngledTriangle:Triangle  {  public override double ComputeArea(int a, int b, int c)  {  const double dEpsilon = 0.0001;  double dArea = 0;  if (Math.Abs((a*a + b*b - c*c)) > dEpsilon)  {  dArea = base.ComputeArea(a,b,c);  }  else  {  dArea = a*b/2.0;  }  return dArea;  }  }

該檢測簡單地利用了畢達(dá)哥拉斯公式,對于直角三角形,檢測結(jié)果必須為0.如果結(jié)果不為0,類就調(diào)用它基類的ComputeArea來實(shí)現(xiàn)。

dArea = base.ComputeArea(a,b,c);

例子的要點(diǎn)為:通過顯式地利用基類的資格檢查,你就能輕而易舉地調(diào)用基類實(shí)現(xiàn)C#改寫方法。當(dāng)你需要實(shí)現(xiàn)其在基類中的功能,而不愿意在C#改寫方法中重復(fù)它時,這就非常有幫助。

感謝各位的閱讀!關(guān)于“C#如何改寫方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


網(wǎng)頁題目:C#如何改寫方法
URL分享:http://weahome.cn/article/peciod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部