直播中
接下來的三個(gè)類Circle、Rectangle和Square都從Shape類派生,它們都具有Shape所描述的特征。這可以從它們的定義中看出來,它們的聲明中都帶有“public class:Shape {”,這個(gè)“: Shape”就表示當(dāng)前的類從Shape類派生。由于這三個(gè)類都從Shape派生,它們自動(dòng)擁有Shape中定義的所有public或者protected實(shí)例變量,即Circle、 Rectangle和Square包含了實(shí)例變量color。
每一個(gè)Sharp的派生類都有自己的構(gòu)造函數(shù),負(fù)責(zé)調(diào)用父類Shape的構(gòu)造函數(shù)設(shè)置公共的實(shí)例變量(color)以及設(shè)置自己特有的實(shí)例變量。例如“public Circle(string color, double radius) : base(color)”這個(gè)語句中,“: base(color)”就表示用參數(shù)color調(diào)用父類的構(gòu)造函數(shù)。
最后我們來看一下getArea()方法,它是一個(gè)多態(tài)性的示范。所有形狀都有g(shù)etArea()方法,但是根據(jù)對(duì)象是圓、長(zhǎng)方形還是正方形,具體調(diào)用的方法也不同。
要運(yùn)行這個(gè)例子,先把所有文件保存到同一目錄,然后執(zhí)行下面的命令:
csc /target:library /out:Shapes.dll
Shapes.cs Circle.cs Rectangle.cs Square.cs
然后執(zhí)行:
csc /reference:Shapes.dll Example3.cs
現(xiàn)在,如果我們運(yùn)行Example3.exe,將得到如下輸出:
圓的顏色是orange它的面積是28.274333882308138.
正方形的顏色是green它的面積是16.
長(zhǎng)方形的顏色是red 它的面積是32.
參考:
C# 語言參考
C# Station