溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java接口的作用有哪些

發(fā)布時(shí)間:2021-06-25 14:47:57 來(lái)源:億速云 閱讀:120 作者:Leah 欄目:編程語(yǔ)言

Java接口的作用有哪些,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

1、JAVA多態(tài)接口動(dòng)態(tài)加載實(shí)例

用來(lái)計(jì)算每一種交通工具運(yùn)行1000公里所需的時(shí)間,已知每種交通工具的參數(shù)都是3個(gè)整數(shù)A、B、C的表達(dá)式?,F(xiàn)有兩種工具:

Car 和Plane,其中Car 的速度運(yùn)算公式為:A*B/C

Plane 的速度運(yùn)算公式為:A+B+C。

需要編寫三類:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未來(lái)如果增加第3種交通工具的時(shí)候,不必修改以前的任何程序,只需要編寫新的交通工具的程序。其運(yùn)行過(guò)程如下,從命令行輸入ComputeTime的四個(gè)參數(shù),***個(gè)是交通工具的類型,第二、三、四個(gè)參數(shù)分別時(shí)整數(shù)A、B、C,舉例如下:

計(jì)算Plane的時(shí)間:"java ComputeTime Plane 20 30 40"

計(jì)算Car007的時(shí)間:"java ComputeTime Car007 23 34 45"

如果第3種交通工具為Ship,則只需要編寫Ship.java,運(yùn)行時(shí)輸入:"java ComputeTime Ship 22 33 44"

提示:充分利用接口的概念,接口對(duì)象充當(dāng)參數(shù)。

實(shí)例化一個(gè)對(duì)象的另外一種辦法:Class.forName(str).newInstance();例如需要實(shí)例化一個(gè)Plane對(duì)象的話,則只要調(diào)用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(" 參數(shù)A: "+args[1]);  System.out.println(" 參數(shù)B: "+args[2]);  System.out.println(" 參數(shù)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("運(yùn)行時(shí)間:"+t+" 小時(shí)");  } catch(Exception e) ...{  System.out.println("class not found");  }  }  }

以前看過(guò)一個(gè)求形狀的題目就是有兩個(gè)圓形求交集現(xiàn)在定義了兩種情況問(wèn)要是擴(kuò)展大別的情況應(yīng)當(dāng)怎么設(shè)計(jì),想了很久不得其解,現(xiàn)在忽然覺(jué)得接口通殺矣~

2、JAVA接口作為參數(shù)傳遞

可以將借口類型的參數(shù)作為方法參數(shù),在實(shí)際是使用時(shí)可以將實(shí)現(xiàn)了接口的類傳遞給方法,后方法或按照重寫的原則執(zhí)行,實(shí)際調(diào)用的是實(shí)現(xiàn)類中的方法代碼體,這樣便根據(jù)傳進(jìn)屋的參數(shù)的不同而實(shí)現(xiàn)不同的功能。重要的是,當(dāng)我以后徐要林外一個(gè)對(duì)象并且擁有接受說(shuō)生命的方法的時(shí)候的時(shí)候,我們不必須原類,只需新的類實(shí)現(xiàn)借口即可。

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);  }  }

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI