程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#語言初級初步掌握(4)

C#語言初級初步掌握(4)

編輯:C#入門知識
     抽象和多態性(二)
     我們創建的第一個類是Shape。這是一個抽象類,因為我們不想創建這個類的實例,我們要創建的是它的派生類的實例。我們從所有的形狀(圓、長方形、正方形)提取出共同特征到Shape類。Shape類有一個實例變量color,它的變量聲明中帶有protected修飾符。protected修飾符表示這個變量只能在類的內部或者該類的派生類中訪問。緊接這個變量聲明的就是Shape類的構造函數和存取方法getColor(),這兩個方法都沒有什麼新的東西。最後一個方法getArea()加上了abstract修飾符,這是因為每一種不同的形狀都有不同的面積計算方法,因此這個方法必須由各種形狀自己來定義。
  
     接下來的三個類Circle、Rectangle和Square都從Shape類派生,它們都具有Shape所描述的特征。這可以從它們的定義中看出來,它們的聲明中都帶有“public class:Shape {”,這個“: Shape”就表示當前的類從Shape類派生。由於這三個類都從Shape派生,它們自動擁有Shape中定義的所有public或者protected實例變量,即Circle、 Rectangle和Square包含了實例變量color。
  
     每一個Sharp的派生類都有自己的構造函數,負責調用父類Shape的構造函數設置公共的實例變量(color)以及設置自己特有的實例變量。例如“public Circle(string color, double radius) : base(color)”這個語句中,“: base(color)”就表示用參數color調用父類的構造函數。
  
     最後我們來看一下getArea()方法,它是一個多態性的示范。所有形狀都有getArea()方法,但是根據對象是圓、長方形還是正方形,具體調用的方法也不同。
  
     要運行這個例子,先把所有文件保存到同一目錄,然後執行下面的命令:
  
  
  csc /target:library /out:Shapes.dll
   Shapes.cs Circle.cs Rectangle.cs Square.cs
  
  
  
  
     然後執行:
  
  
  csc /reference:Shapes.dll Example3.cs
  
  
  
  
     現在,如果我們運行Example3.exe,將得到如下輸出:
  
  
  圓的顏色是orange它的面積是28.274333882308138.
  正方形的顏色是green它的面積是16.
  長方形的顏色是red 它的面積是32.
  
  
  
  
     參考:
  
  C# 語言參考
  C# Station  

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