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

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

C#forUnity快速入門(mén)(連載8)-C#抽象類(lèi)與接口-創(chuàng)新互聯(lián)

 C# for Unity 編程語(yǔ)言快速入門(mén)教程(連載8)---C#OOP編程之抽象類(lèi)與接口

成都創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比大新網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式大新網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大新地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

  C#的抽象類(lèi)與接口,是C#OOP編程中非常重要的概念,對(duì)于開(kāi)發(fā)出“高內(nèi)聚、低耦合”的優(yōu)秀項(xiàng)目具有重要的作用。

  C#抽象類(lèi)是用關(guān)鍵字abstract 表示的,它即可以修飾類(lèi)(抽象類(lèi)),也可以修飾方法(抽象方法)。抽象類(lèi)主要的作用是:列舉一個(gè)類(lèi)所需要的行為,提供一系列的規(guī)定,約束子類(lèi)行為。

 C#抽象類(lèi)與抽象方法具備以下重要規(guī)則:

 1:抽象類(lèi)不能被實(shí)例化。

 2:抽象類(lèi)不明確提供具體 方法實(shí)現(xiàn)。(但可以包含普通的方法)

 3:定義基類(lèi)(父類(lèi))中的抽象方法,則派生類(lèi)(子類(lèi))必須重載(重寫(xiě))該方法。
 4:抽象方法一定屬于抽象類(lèi),但抽象類(lèi)不一定要包含抽象方法。
 5:抽象方法不能是私有的,而且抽象方法及其重載方法的訪問(wèn)限制應(yīng)當(dāng)相同。
 6:抽象方法不能使用virtual 關(guān)鍵字進(jìn)行修飾。
 7:抽象類(lèi)不能是密封或靜態(tài)的 。

 8:抽象類(lèi)必須由其子類(lèi)實(shí)現(xiàn)它的抽象方法,除非子類(lèi)也是抽象類(lèi)。

 9:繼承抽象類(lèi)的派生類(lèi),必須使用override 實(shí)現(xiàn)抽象方法。

10:抽象方法一定屬于抽象類(lèi),但抽象類(lèi)不一定要包含抽象方法。

 我們生活中的接口是: “不同物理設(shè)備與軟件程序?qū)崿F(xiàn)溝通與數(shù)據(jù)傳輸?shù)囊?guī)格與標(biāo)準(zhǔn)”(例如:USB接口,即可以應(yīng)用在鼠標(biāo)鏈接上,也可以應(yīng)用在移動(dòng)硬盤(pán)、USB盤(pán)、手機(jī)、數(shù)碼相機(jī)、充電寶....)
 C#中的接口就是:“某個(gè)事物對(duì)外提供的一些功能的申明”,我們使用interface 關(guān)鍵字來(lái)聲明一個(gè)接口,注意這里接口是一個(gè)與類(lèi)“平行”的編程單位,相互之間沒(méi)有隸屬關(guān)系。

 C#的接口具備以下重要規(guī)則:

 1: 接口可以繼承,類(lèi)似類(lèi)的繼承。

 2: 接口可以實(shí)現(xiàn)多重繼承,類(lèi)不可以。

 3: 可以把接口理解為更純的抽象類(lèi),因?yàn)榻涌谥兴械姆椒ǘ际浅橄蟮?,沒(méi)有普通方法。

 4: 接口和抽象類(lèi)不能被實(shí)例化。

 5: 接口的任何派生實(shí)現(xiàn)類(lèi),都必須實(shí)現(xiàn)接口的所有方法。

 6: 接口不允許有任何構(gòu)造函數(shù)或字段。

 7: 接口成員總是公共的,不能聲明虛擬和靜態(tài)的。

 8: 接口中不允許指定任何訪問(wèn)修飾符,(隱式為public)不需要訪問(wèn)修飾符。

 9: 類(lèi)不允許多繼承,但接口允許多繼承。
     好的編程習(xí)慣: 使用接口名作為方法的前綴,這稱為“顯示接口實(shí)現(xiàn)”。
     對(duì)于明確指定了接口的方法,就不再允許使用修飾符,一律為 public。

 以上兩篇文章我們學(xué)習(xí)了方法重載,方法重寫(xiě),抽象類(lèi),抽象方法,接口等?,F(xiàn)在總結(jié)一些概念之間的區(qū)別點(diǎn):

 1:不能同時(shí)使用 virtual 和 override 修飾一個(gè)方法。
 2:虛擬方法不能是私有的。
 3:對(duì)于 interface 、virtual、override、sealed 關(guān)鍵字的理解:
       interface: 引入一個(gè)方法的名稱
       virtual:  方法的第一個(gè)實(shí)現(xiàn)。
       override: 方法的另一個(gè)實(shí)現(xiàn)。
       sealed:   方法的最后一個(gè)實(shí)現(xiàn)。

  目前關(guān)于C#基礎(chǔ)編程,截至本篇筆者提供了8篇技術(shù)介紹性文章,現(xiàn)在提供從類(lèi)的訪問(wèn)修飾符到目前接口的一些典型學(xué)習(xí)習(xí)題,供C#初學(xué)者學(xué)習(xí)之用。

編程題目:

1: 學(xué)習(xí)定義類(lèi)與訪問(wèn)修飾符。
1.1>: 已知交通工具類(lèi)定義如下。
class Vehicle
{
  private int _length; //長(zhǎng)度
  private int _width;  //寬度

  public void Drive(){}; //駕駛方法
}
要求:(1)實(shí)現(xiàn)設(shè)個(gè)類(lèi);(2)定義并實(shí)現(xiàn)一個(gè)小車(chē)類(lèi)car,是它的派生類(lèi),小車(chē)本身的私有屬性有載人數(shù),小車(chē)的方法有init(設(shè)置車(chē)輪數(shù)、重量和載人數(shù)),get passenger(獲取載人數(shù)),print(打印車(chē)輪數(shù)、重量和載人數(shù))。

2: 學(xué)習(xí)繼承
 2.1>: 編寫(xiě)一個(gè)學(xué)生和教師的數(shù)據(jù)輸入和顯示程序,學(xué)生數(shù)據(jù)有編號(hào)、姓名、班號(hào)和成績(jī),教師數(shù)據(jù)有編號(hào)、姓名、職稱和部門(mén)。要求將編號(hào)、姓名輸入和顯示設(shè)計(jì)成一個(gè)類(lèi)person,并作為學(xué)生數(shù)據(jù)操作類(lèi)student和教師數(shù)據(jù)操作類(lèi)teacher的基類(lèi)。

3: 方法重載(靜態(tài)多態(tài)性)
  3.1>:   利用多態(tài)性實(shí)現(xiàn)多功能計(jì)算器:
         A)定義方法名為computeMethod 的方法,實(shí)現(xiàn)加法器。
         B)再定義方法名為computeMethod 的方法,實(shí)現(xiàn)具備加減乘除綜合計(jì)算功能。
         C)在main 方法中調(diào)用以上方法,且測(cè)試。
  3.2>:   利用多態(tài)性實(shí)現(xiàn)如下功能。
        A)定義一個(gè)Father 類(lèi),利用構(gòu)造方法的重載概念定義三個(gè)構(gòu)造方法。
        B)定義Child 類(lèi)繼承Father類(lèi),在Child的構(gòu)造方法中分別調(diào)用父類(lèi)不同的構(gòu)造方法。

4: 方法重寫(xiě)
  4.1>: 設(shè)計(jì)一個(gè)基類(lèi),在其中創(chuàng)建方法MConvert,這個(gè)方法接受一個(gè)代表公里數(shù)的參數(shù),將其轉(zhuǎn)換為對(duì)等的英里數(shù)之后,然后創(chuàng)建一個(gè)繼承此類(lèi)的子類(lèi),增加可將輸入的公斤數(shù)轉(zhuǎn)換為磅的新方法 KConvert, 最后產(chǎn)生子類(lèi)的實(shí)例對(duì)象, 測(cè)試這兩個(gè)功能。
  提示信息:
  1千米(公里) = 0.62英里
  1千克(公斤) = 2.2磅

  4.2>: 調(diào)整上一題的內(nèi)容,將其中的MConvert方法聲明為virtual, 然后在子類(lèi)中進(jìn)行覆寫(xiě),以其所接受的參數(shù)為正方形邊長(zhǎng),轉(zhuǎn)換為英里后計(jì)算其面積。

  4.3>: 創(chuàng)建一個(gè)類(lèi),重寫(xiě)ToString() 方法, 當(dāng)其被引用的時(shí)候,能夠輸出此類(lèi)對(duì)象的說(shuō)明文字,如下:  “測(cè)試用的myObject 類(lèi)對(duì)象”

5: 抽象類(lèi)、抽象方法
 5.1>: 編寫(xiě)一個(gè)程序,求圓、圓內(nèi)接正方形和圓外切正方形的面積和周長(zhǎng)。要求設(shè)計(jì)抽象基類(lèi)、抽象方法,使用動(dòng)態(tài)多態(tài)性。
     提示信息:
      公式: 勾股定義: 直角三角形中兩邊長(zhǎng)平方的和等于第三邊的平方:a*a+b*b=c*c
      圓的半徑使用 r:
     內(nèi)切正方形的邊長(zhǎng)=r*r+r*r=x*x
                               x=sqrt(2(r*r))
     內(nèi)切正方形面積
             x*x
     內(nèi)切正方形周長(zhǎng)
                 4x
      外切正方形面積
               (r*2)*(r*2)
     外切正方形周長(zhǎng)
               (r*2)*4=8r

      形狀:  shape
      圓:    circle
      正方形: square、
      面積:  area.
      周長(zhǎng):  length.

 5.2>:下面Shape類(lèi)是一個(gè)表示形狀的抽象類(lèi),Area ( )為求圖形面積的函數(shù)。請(qǐng)從Shape類(lèi)派生梯形類(lèi)(Trapezoid)、圓形類(lèi)(Circle),三角形類(lèi)(Triangle),并給出具體的求面積函數(shù)。其中,所有派生類(lèi)計(jì)算面積需要用到的參數(shù)由構(gòu)造函數(shù)給出,梯形面積計(jì)算需要上底、下底和高,三角形面積需要底和高,圓形面積需要半徑。
形狀的抽象類(lèi)聲明如下:

abstract class Shape {
 abstract public double Area( );
}

6: 接口、多重接口

  6.1>:A)定義Calculate接口,

    接口文件如下:
    interface Calculate
    {
         void getArea(); //計(jì)算圓面積。
         void getZC();   //計(jì)算圓周長(zhǎng)
     }

   B) 定義circularity 類(lèi),實(shí)現(xiàn)接口Calculate. 且調(diào)試后輸出結(jié)果。

 6.2>: 設(shè)計(jì)一個(gè)類(lèi)TClass, 繼承下面的接口IMeasure, 實(shí)現(xiàn)其中的Length() 與 Area()方法,來(lái)計(jì)算特定長(zhǎng)度等邊三角形的邊長(zhǎng)和面積。
    interface IMeasure
    {
      int Length(int s);
      int Area(int s);
    }

 6.3>  承上題,設(shè)計(jì)一個(gè)測(cè)試程序,創(chuàng)建TClass 的實(shí)例對(duì)象,調(diào)用其中的方法計(jì)算邊長(zhǎng)為10的三角形面積和周長(zhǎng)。

 6.4>: 承上題,設(shè)計(jì)一個(gè)測(cè)試程序,創(chuàng)建TClass 的實(shí)例對(duì)象,將其轉(zhuǎn)型為 IMeasure 類(lèi)型,調(diào)用其中的方法來(lái)計(jì)算邊長(zhǎng)為10的三角形面積和周長(zhǎng)。

 6.5>: 另外設(shè)計(jì)一個(gè)新的類(lèi),同時(shí)繼承下面的接口 IAMeasure 及上面第2題的IMeasure,除了提供對(duì)特定長(zhǎng)度等邊三角形的邊長(zhǎng)與面積的計(jì)算方法外,還實(shí)現(xiàn)了IAMeasure的Area()成員,提供對(duì)正方形面積的計(jì)算方法。
   interface IAMeasure
    {
      int Area(int s);
    }

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


標(biāo)題名稱:C#forUnity快速入門(mén)(連載8)-C#抽象類(lèi)與接口-創(chuàng)新互聯(lián)
本文鏈接:http://weahome.cn/article/cosois.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部