您好,登錄后才能下訂單哦!
Java接口的作用有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1、JAVA多態接口動態加載實例
用來計算每一種交通工具運行1000公里所需的時間,已知每種交通工具的參數都是3個整數A、B、C的表達式。現有兩種工具:
Car 和Plane,其中Car 的速度運算公式為:A*B/C
Plane 的速度運算公式為:A+B+C。
需要編寫三類:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未來如果增加第3種交通工具的時候,不必修改以前的任何程序,只需要編寫新的交通工具的程序。其運行過程如下,從命令行輸入ComputeTime的四個參數,***個是交通工具的類型,第二、三、四個參數分別時整數A、B、C,舉例如下:
計算Plane的時間:"java ComputeTime Plane 20 30 40"
計算Car007的時間:"java ComputeTime Car007 23 34 45"
如果第3種交通工具為Ship,則只需要編寫Ship.java,運行時輸入:"java ComputeTime Ship 22 33 44"
提示:充分利用接口的概念,接口對象充當參數。
實例化一個對象的另外一種辦法:Class.forName(str).newInstance();例如需要實例化一個Plane對象的話,則只要調用Class.forName("Plane").newInstance()便可。
Java代碼:
import CalTime.vehicle.all.Common; import java.lang.*; public interface Common ...{ double runTimer(double a, double b, double c); } public class Plane implements Common ...{ public double runTimer(double a, double b, double c) ...{ return (a+ b + c); } } public class Car implements Common ...{ public double runTimer(double a, double b, double c) ...{ return ( a*b/c ); } } public class ComputeTime ...{ public static void main(String args[]) ...{ System.out.println("交通工具: "+args[0]); System.out.println(" 參數A: "+args[1]); System.out.println(" 參數B: "+args[2]); System.out.println(" 參數C: "+args[3]); double A=Double.parseDouble(args[1]); double B=Double.parseDouble(args[2]); double C=Double.parseDouble(args[3]); double v,t; try ...{ Common d=(Common) Class.forName("CalTime.vehicle."+args[0]).newInstance(); v=d.runTimer(A,B,C); t=1000/v; System.out.println("平均速度: "+v+" km/h"); System.out.println("運行時間:"+t+" 小時"); } catch(Exception e) ...{ System.out.println("class not found"); } } }
以前看過一個求形狀的題目就是有兩個圓形求交集現在定義了兩種情況問要是擴展大別的情況應當怎么設計,想了很久不得其解,現在忽然覺得接口通殺矣~
2、JAVA接口作為參數傳遞
可以將借口類型的參數作為方法參數,在實際是使用時可以將實現了接口的類傳遞給方法,后方法或按照重寫的原則執行,實際調用的是實現類中的方法代碼體,這樣便根據傳進屋的參數的不同而實現不同的功能。重要的是,當我以后徐要林外一個對象并且擁有接受說生命的方法的時候的時候,我們不必須原類,只需新的類實現借口即可。
Java代碼:
import java.lang.*; interface Extendbroadable ...{ public void inPut(); } class KeyBroad implements Extendbroadable ...{ public void inPut() ...{ System.out.println(" hi,keybroad has be input into then mainbroad! "); } } class NetCardBroad implements Extendbroadable ...{ public void inPut() ...{ System.out.println(" hi,netCardBroad has be input into then mainbroad! "); } } class CheckBroad ...{ public void getMainMessage(Extendbroadable ext)...{ ext.inPut(); } } public class InterfaceTest01 ...{ public static void main(String []args) ...{ KeyBroad kb=new KeyBroad(); NetCardBroad ncb=new NetCardBroad(); CheckBroad cb=new CheckBroad(); cb.getMainMessage(kb); cb.getMainMessage(ncb); } }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。