Oop 为什么接口或抽象类有用?(或者为了什么?)

Oop 为什么接口或抽象类有用?(或者为了什么?),oop,interface,abstract-class,Oop,Interface,Abstract Class,所以我的问题是,为什么要使用接口或抽象类?为什么它们有用?为什么 在哪里可以智能地使用它们?当您想要指定一组通用方法和属性时,它们非常有用,这些方法和属性是所有实现/继承它们的类都具有的,它们都应该提供公开的行为 特别是在接口方面,一个类可以实现多个接口,因此当您试图对其实例必须表现出多种行为的事实进行建模时,这非常方便 此外,正如所说,接口是一种类型定义:在函数或方法调用中将对象作为参数传递的任何地方,要交换的对象的类型都可以根据接口而不是特定的类来定义,这使得以后可以使用相同的函数交换不同的

所以我的问题是,为什么要使用接口或抽象类?为什么它们有用?为什么


在哪里可以智能地使用它们?

当您想要指定一组通用方法和属性时,它们非常有用,这些方法和属性是所有实现/继承它们的类都具有的,它们都应该提供公开的行为

特别是在接口方面,一个类可以实现多个接口,因此当您试图对其实例必须表现出多种行为的事实进行建模时,这非常方便


此外,正如所说,接口是一种类型定义:在函数或方法调用中将对象作为参数传递的任何地方,要交换的对象的类型都可以根据接口而不是特定的类来定义,这使得以后可以使用相同的函数交换不同的对象类型:因此,这样的代码更加通用和可重用。

接口允许您表达类型的功能,而不必担心它是如何完成的。可以随意更改实现,而不会影响客户端

抽象类类似于接口,只是它们允许您为存在的方法提供合理的默认行为


使用和举例取决于语言。如果您了解Java,您可以在整个API中找到接口和抽象类的示例。java.util集合两者都有很多。

复制并可能尝试在google中键入问题,查看前一百万个左右的结果中的任何一个。一个词-多态性!自JDK8以来,可以向接口添加默认行为。抽象类仍然不同,因为它们可以有状态。接口只能声明静态变量。