继承关系(二)

继承关系(二)

ID:21026103

大小:156.00 KB

页数:20页

时间:2018-10-18

继承关系(二)_第1页
继承关系(二)_第2页
继承关系(二)_第3页
继承关系(二)_第4页
继承关系(二)_第5页
资源描述:

《继承关系(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章繼承關係(二)介面與抽象類別鍾俊仁,葉國良本單元內容9-2Java的介面介面的建立與使用9-3介面的繼承10-3抽象類別10-4抽象類別與介面練習9-2介面介面(Interface)從物件的行為(方法)的概念衍生而來。不同類別(無任何關係)的物件之間若需要一致行為(同名方法),可以透過介面來定義這些行為(方法)的一致性介面。Interface是指物件的方法對外所提供的方法介面,用來制定欲提供此行為的方法必須使用到的規格(方法名稱,參數列,回傳值資料型態等)。介面分為定義–以interface語法宣告共同方法的名稱,參數列,回傳值實作–由使用到此共同方法的物件實際製作執行時的

2、程式碼範例Car類別和CD類別(或其他類別)若需要提供getPrice()方法,可以將這些同名方法的呼叫介面抽取出來放在同一個介面(IPrice介面)中宣告這些方法的呼叫規格。需要使用此方法的類別,可以在類別定義中實作自己的getPrice()方法的程式碼。Interface的UML表示介面的定義與實作類似UML的一般化關係(繼承),所以UML以虛線和空心箭頭來表示介面的定義與實作之間的關係。介面的定義則如同物件圖一樣,介面名稱前以<>型態名稱(Stereotype)來表示,表示它是一個介面的定義。欲使用此介面定義的類別則以虛線和空心箭頭指向介面定義(類似繼

3、承),表示此類別將依照定義中的方法宣告來實作方法的程式碼。介面跟類別一樣,也可以當成資料型態,而且是參考類型的資料型態。Car-price:double-name:String+getPrice():double+getName():StringCD-price:double-name:String+getPrice():double+getName():String<>IPricegetPrice():double介面的建立(定義)介面可以用來定義類別的共同行為,在定義中只能包含常數和方法的宣告(抽象方法),語法如下:使用範例:存取修飾子interface

4、介面名稱{資料型態常數=值;//常數定義傳回值型態介面方法(參數列);//抽象方法的宣告}//預設為同一套件內可以使用interfaceIArea{publicfinalstaticdoublePI=3.14159;publicabstractvoidarea();}interfaceIArea{doublePI=3.14159;voidarea();}只有方法宣告,不含程式碼定義介面的使用(實作)介面的實作由使用此介面的類別,在類別定義中做定義,語法如下:使用範例:存取修飾子class類別名稱implement介面名稱1,介面名稱2{…//介面方法1的實作}classCircl

5、eimplementsIArea{…publicvoidarea(){System.out.println(“圓面積:“+PI*r*r);}}注意:在實作某個介面的類別定義中必須實作該介面定義中的所有方法宣告,否則編譯時會發生錯誤。Ch9_2_2範例/*程式範例:Ch9_2_2.java*/interfaceIArea//IArea介面宣告{//常數的宣告finaldoublePI=3.1415926;//介面方法:計算面積voidarea();}classCircleimplementsIArea//Circle類別宣告{//資料成員publicdoublex;//X座標pub

6、licdoubley;//y座標privatedoubler;//半徑//建構子publicCircle(doublex,doubley,doubler){this.x=x;this.y=y;this.r=r;}//實作IArea介面的方法area()publicvoidarea(){System.out.println("圓面積:"+PI*r*r);}}//主程式類別publicclassCh9_2_2{//主程式publicstaticvoidmain(String[]args){//宣告類別型態的變數,並且建立物件Circlec=newCircle(6.0,15.0,5.0

7、);//呼叫物件的介面方法area()c.area();//顯示介面的常數值System.out.println("PI常數:"+IArea.PI);}}Circle+x:double+y:double-r:double+area()<>IAreaarea()介面與類別階層架構介面可以將不同類別的共同方法抽取出來成為介面,讓各類別根據此介面內定的方法規格自行實作方法的程式碼。它也可以從繼承的階層架構中,將父類別與子類別的共同方法抽取出來成為介面。例如:Veh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。