`
tboss
  • 浏览: 45697 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java接口的作用

    博客分类:
  • Java
阅读更多

今天和同事好好的讨论了下接口的原理和作用,发现原来自己的对接口的理解仅仅是局限在概念的高度抽象上,觉得好像理解了但是不会变化应用其实和没有理解差不多。以前看一个帖子说学习一个东西不管什么时候都要带着“这个东西是什么?”、“这个东西有什么作用?”和“这个东西怎样用?”三个问题,这三个问题回答上来了说明你对这个事物的理解达到了一定的高度。

  今天还有一个比较深的经验是要学习到知识就要多和人交流。就像以前某个管理人员说得“要疯狂的交流”。

  现在对于今天学到的接口部分做一个详细地总结:

  接口的概念其实并不难理解,接口关键字Interface,在使用时可以只定义函数体而不需要具体的实现。再类的继承过程中可以实现多个接口而取代了类的多继承。使用接口其实就有点像实现虚函数的调用一样,用继承接口的子类实例化声名得借口就可以通过接口调用子类内部接口定义的函数。使用这种接口方式编程,如果业务逻辑发生变化需要新增类多方法,就可以再不改变原来已经写好的代码基础上新增一个类来实现接口中定义的函数来实现。具体方法请看下面两个例子:

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

  }

  }

分享到:
评论

相关推荐

    java中接口的作用

    Java 中接口的作用 Java 中的接口是一种抽象的概念,它定义了一组方法的集合,但不提供实现。接口的主要作用是提供一种规范,以便实现类来实现这些方法。接口的作用主要体现在以下几个方面: 多重继承:Java 中的...

    Java接口.docx

    Java 接口是一种抽象类型,用于定义一组方法的规范和约束形式,它的主要作用是提高程序的复用性、可维护性和可扩展性。下面我们将详细讨论 Java 接口的定义、实现和使用。 一、定义 Java 接口 定义 Java 接口需要...

    JAVA 接口用法 PPT

    Java接口是一种重要的编程概念,它是Java语言中定义多个类共享行为的一种方式。接口与抽象类相似,都用于定义类的公共属性,但是接口更偏向于一种“纯”抽象,它只包含方法签名(方法名、参数列表和返回类型),而不...

    Java中interface接口的作用

    下面将详细讲解Java接口的作用以及其在实际开发中的应用。 首先,接口作为契约,定义了类必须遵循的公共行为。通过实现一个或多个接口,一个类可以声明它支持哪些操作,而无需关心具体的实现细节。这种解耦使得代码...

    java包与接口实验报告

    #### 二、Java接口的作用及使用 - **接口的作用**:接口是一种抽象类型,它定义了一组方法签名但不提供具体的实现。通过实现接口,类可以声明自己支持某些行为,而具体实现则由实现该接口的类来完成。 - **接口的...

    Java 接口 内部类

    Java接口和内部类是Java语言中两种重要的抽象机制,它们在软件设计中起着关键作用。接口主要用于定义对象之间的交互规范,而内部类则提供了一种封装和隐藏类的机制,使得类的设计更加灵活。 首先,接口是一个合约,...

    java接口的不同使用

    本文将深入探讨Java接口的使用方法,帮助你理解其核心特性、作用以及如何在实际编程中灵活运用。 1. **接口的定义与特点** - 接口中所有的方法默认都是抽象的(abstract)和公开的(public),不需要声明这两个...

    java接口使用实例源码

    总结一下,Java接口在软件设计中起着至关重要的作用,它们定义了行为规范,促进代码的可扩展性和灵活性。通过研究提供的源码实例,开发者能够更好地掌握接口的使用,包括声明、实现、默认方法和静态方法等特性,从而...

    java接口与实现接口的类实验报告.pdf

    1. Java接口的概念及其作用,包括接口中的常量定义和抽象方法。 2. 实现接口的类需要实现接口中所有的抽象方法。 3. `Comparator<T>`接口的使用,以及如何自定义比较规则。 4. `Arrays.sort()`方法的运用,结合...

    使用java请求json接口数据

    这里我们将深入探讨如何使用Java来获取指定接口的JSON数据,并涉及`HttpServletRquest`类的重要作用。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,...

    java接口与内部类

    ### Java接口与内部类知识点详解 #### 接口概述 - **接口定义**: 在Java中,接口(Interface)是一种抽象类型,它定义了一组方法签名(即方法的名称和参数列表),但没有具体实现(即没有方法体)。接口提供了一种...

    java接口文档规范

    ### Java接口文档规范 在软件开发过程中,接口文档起着至关重要的作用,它不仅帮助团队成员之间更好地沟通,还能够确保各个系统之间的交互顺畅无阻。本文档将详细介绍一个具体的Java接口示例,并对该接口的各项内容...

    Java接口和内部类教程

    ### Java接口和内部类教程 #### 3.1 接口 ##### 3.1.1 接口概念的引入 在计算机编程中,接口扮演着至关重要的角色,尤其是在Java这样的面向对象编程语言中。接口可以被视为一种规范或合同,规定了类必须遵循的...

    Java 语言程序设计:第5章接口多态.ppt

    Java 语言程序设计第 5 章接口多态 本章主要讲解 Java 语言程序设计中接口和多态的概念、语法和应用。接口是 Java 语言中的一种抽象机制,它提供了一种定义类之间的“协议”的方式,允许类之间实现多继承,同时免除...

    Java 接口和抽象类区别

    总结来说,Java接口和抽象类都是软件设计中的重要工具,它们在EJB等企业级应用中发挥着关键作用。理解它们的区别和用法,有助于编写更高效、可维护的代码,并且能更好地利用Java的面向对象特性。通过深入学习EJB的...

    支付宝java确认接口

    首先,我们需要理解支付宝确认接口的基本作用。这个接口通常指的是商家在完成商品发货后,通过调用支付宝的API来通知支付宝交易状态已经发生改变,例如货物已发出。这一步骤对买家和卖家都至关重要,因为它确保了...

    java接口与内部类教学PPT

    接口-作用 3.接口-定义方式 4.接口-实现 5.接口-与抽象类之区别 6.接口-应用示例(设计模式) 7.内部类-简介 8.内部类-作用 9.内部类-特殊语法规则 10.内部类-安全性 11.内部类...

    Java API文档.docx

    Java API文档是Java开发者不可或缺的参考资料,它详细记录了Java编程语言的标准库,包括类、接口、方法和属性等核心元素。这些文档不仅提供技术规格,还包含使用示例,帮助程序员理解和应用Java的各类功能。 1. **...

    java实现读取证书访问https接口

    在Java编程环境中,访问HTTPS接口通常涉及到网络通信和安全性的处理。HTTPS协议是HTTP协议的安全版本,通过SSL/TLS协议提供了数据加密、服务器身份验证和消息完整性检查,以确保网络通信的安全。本教程将深入讲解...

    Java语言的接口与抽象类

    4. 多继承:Java接口支持多继承,一个接口可以继承多个父接口,实现接口的组合和扩展。 5. 实现:实现接口的类必须实现接口中声明的所有方法,否则这个类也必须被声明为抽象类。 其次,抽象类(Abstract Class)是...

Global site tag (gtag.js) - Google Analytics