在Java中,接口的实际用途是什么?

2022-09-02 04:56:02

可能的重复项:
抽象类和接口类?
Java:接口/抽象类/抽象方法

在Java中,接口的任何使用都是由抽象类实现的。我知道接口的一个优点是,如果我们实现一个接口,那么我们也可以扩展另一个类。在Java中,接口还有其他用途或优势吗?


答案 1

接口允许您以多态方式使用不同层次结构中的类。

例如,假设您有以下接口:

public interface Movable {
    void move();
}

任何数量的类,跨类层次结构都可以以自己的特定方式实现,但仍然被某些调用者以统一的方式使用。Movable

因此,如果您有以下两个类:

public class Car extends Vehicle implements Movable {
    public void move() {
       //implement move, vroom, vroom!
    }
}

public class Horse extends Animal implements Movable {
    public void move() {
       //implement move, neigh!
    }
}

从调用方的角度来看,它只是一个Movable

Movable movable = ...;
movable.move();  //who am I?

我希望这有帮助。


答案 2

你喜欢什么:一个抽象类中有数千个抽象方法,并继承这个类,或者为特定的抽象方法制作尽可能多的接口,并通过根据需要继承尽可能多的接口来使用那些你想要的接口......

abstract class A
{
 //thousands of abstract method();
 abstract methodA();
 abstract methodB();
 abstract methodC();
}

//OR
interface ForOnlymethodA
{
 void methodA();
}
interface FormethodBandmethodC
{
 void methodB();
 void methodC();
}

因此,通过继承特定的接口,仅使用您只需要的方法,如果您正在继承类,那么您将不必要地继承一个类中不需要的所有方法,而在其他一些类中可能需要这些方法。Abstract