java中接口的实际用途是什么?

java中接口的实际用途是什么?,java,interface,abstract-class,Java,Interface,Abstract Class,可能的重复项: 在Java中,接口的任何用途都由抽象类完成。我知道接口的一个优点是,如果我们实现了一个接口,那么我们还可以扩展另一个类。Java中的接口还有其他用途或优点吗 可以实现多个接口,但只能扩展一个类。一个完全抽象的类很像一个接口,只是一个抽象类可以包含变量 这取决于你需要什么。C++允许你扩展你想要的许多类,这就变成了一个灾难。只有一个超类的好处是,您只需要担心另外一组实现(即使父级有父级,父级的特定组合也会成为您的父级…) 接口允许一个对象扮演多个角色,但不允许代码重用 这实际上

可能的重复项:


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

可以实现多个接口,但只能扩展一个类。一个完全抽象的类很像一个接口,只是一个抽象类可以包含变量

这取决于你需要什么。C++允许你扩展你想要的许多类,这就变成了一个灾难。只有一个超类的好处是,您只需要担心另外一组实现(即使父级有父级,父级的特定组合也会成为您的父级…)

接口允许一个对象扮演多个角色,但不允许代码重用

这实际上是为了简化对继承的思考。总而言之,我认为他们是对的。

接口允许Java中的应用程序跨不相交的部分工作

这是由于类层次结构和“封闭类型”上的“单一”限制。我将对Java及其实现保持沉默;-)

对于这个问题还有其他解决方案,如动态类型、结构类型、多重继承和特征等。每种方法都有优点和缺点。接口正是Java采用的方法。

Java接口 -提供
数据封装
,这意味着无法看到方法的实现。扩展此接口的类必须实现其中声明的所有方法


更多信息:

相对于抽象类的优势?除了可以实现多个接口但只能扩展一个(抽象或非抽象)类之外,它与抽象类一样,它的所有方法都是抽象的,公共接口允许您使用不同层次结构中的类

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

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.move();  //who am I?

我希望这会有所帮助。

您喜欢的:在一个抽象类中继承数千个抽象方法,或者为特定的抽象方法创建尽可能多的接口,并根据需要继承尽可能多的接口来使用这些接口

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

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

所以,通过继承特定的接口,只使用您所需要的方法,如果您继承的是
抽象类,那么您就不必要地继承了一个类中不需要的所有方法,并且在其他一些类中可能需要这些方法。

这个问题以前被问过很多次,为了实现一个接口,该接口定义的所有方法必须出现在源代码中,类才能成功编译。通过这种方式,接口允许类在其承诺提供的行为方面变得更加正式。感谢提供有价值的信息。感谢通过适当的示例帮助我理解接口和抽象之间的区别。