java中接口的用途范围

Anu*_*lan 8 java oop interface

接口由抽象方法和最终变量组成.好吧,它被用作提出的广义合同,以便实现它的类应该遵循规则,通过实现其中的方法.

这是Java中唯一的接口使用/范围吗?他们是否仅为此引入了接口的概念,还是我遗漏了什么?请通过示例帮助我理解接口的使用.(不是如何使用或创建界面,而是展示他们如何帮助程序员).

谢谢.

isa*_*sah 10

这是我第一次阅读它们时理解它们的用法:

假设您收到便携式光盘播放器作为礼物.当您尝试操作播放器时,没有任何反应 - 播放器需要电池.什么电池适合播放器?幸运的是,在播放器的背面是规范,This player requires two AA batteries.'' With this information, you can obtain the correctly sized components (the batteries) and fit them into the player. The completed 程序集''运行.

光盘播放器电池的规格有几个有用的用途:

规范告诉用户必须在播放器上安装哪个组件以确保正确操作.该规范告诉光盘播放器的制造商,建立播放器电池室的大小以及播放器电子设备中使用的电压和电流强度.该规范告诉电池制造商建造电池的尺寸,电压和电流强度,以便其他人可以使用它们.这三个事实本身很重要,但它们也暗示用户,光盘制造商和电池制造商不需要彼此直接通信---电池的规格是每一方执行其所需的全部内容.自己的任务独立于其他两个.

  • 这是一个很好的例子.您可以将电池品牌视为电池类型接口的具体实现.您可以将Energizer,Duracell和Sony视为全部实施AA界面.电池的连接是相同的,输出是相同的,当然大小,但品牌和可能一些微妙的内部组件是不同的.+1 (2认同)

Jay*_*ayy 5

我会举个例子.

你有车类

    class Car{
        start(){
            //code
        }
        stop(){
            //code
        }
    }
Run Code Online (Sandbox Code Playgroud)

你想要一辆需要弹跳的超级跑车(但是可弹跳的功能属于球/橡胶)

在这里你的超级跑车可以实现可弹跳

    public interface Bounceable{

        bounce();
    }
Run Code Online (Sandbox Code Playgroud)

现在你有超级汽车可以反弹.

    class SuperCar extends Car implements Bounceable{
        //My Super Car will bounce.
    }
Run Code Online (Sandbox Code Playgroud)


jmo*_*253 3

接口的主要目的是为需要在实现类中实现某些行为的程序员提供指导。

例如,如果您要实现一个实现 List 接口的 Queue 类,则 List 接口将要求您实现 add 方法和 remove 方法等。

interface List {

    public void add(Object o);

    public void remove(Object o);

}
Run Code Online (Sandbox Code Playgroud)

如果您的队列实现 List 接口,则必须实现您自己版本的添加和删除方法。使用接口的主要优点是您可以将一种类型与另一种类型互换。例如:

 // this function returns an ArrayList
 List genericList = (ArrayList) getAnArrayList();  
Run Code Online (Sandbox Code Playgroud)

或者

 // this function returns the Queue you implemented
 List myQueue = (MyQueue) getAQueue(); 
Run Code Online (Sandbox Code Playgroud)

通过将类实现为接口,您可以使用比使用具体类型更通用的类型来声明变量。我发现这对于 bean 或数据传输对象非常有用,其中一个服务类可能使用 ArrayList,而另一个服务类可能会从使用 HashSet 中受益。在我的 bean 中,我可以使用接口声明,并让每个服务类通过将变量强制转换为具体类型来确定它想要使用的具体类型。

接口基本上是一种帮助标准化事物的方法,并且可以更轻松地将一个实现类替换为另一个实现类。

我还发现它们帮助我在编程时记住实现某些方法,因为我可以首先在接口中概述它们,然后编译器提醒我实现它们。