文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java接口的作用有哪些

2023-06-17 12:57

关注

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯