【问题标题】:Why is an interface or an abstract class useful? (or for what?)为什么接口或抽象类有用? (或者为了什么?)
【发布时间】:2010-05-16 21:40:19
【问题描述】:

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

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

【问题讨论】:

标签: oop interface abstract-class


【解决方案1】:

接口允许您表达一个类型的作用,而不必担心它是如何完成的。可以随意更改实施而不影响客户。

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

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

【讨论】:

  • 从 JDK 8 开始,可以向接口添加默认行为。抽象类仍然不同,因为它们可以有状态。接口只能声明静态变量。
【解决方案2】:

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

特别是关于接口,一个类可以实现多个接口,因此当您尝试对其实例必须表现出多种类型的行为这一事实进行建模时,这会派上用场。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2018-07-19
    • 2011-04-06
    • 2012-08-20
    • 2011-01-23
    • 2013-09-21
    • 1970-01-01
    相关资源
    最近更新 更多