【问题标题】:Can anyone broadly explain abstract class and interface?任何人都可以广泛解释抽象类和接口吗?
【发布时间】:2017-07-25 20:08:20
【问题描述】:

谁能大致解释一下抽象类和接口?我在理论上知道这些,但我认为这还不足以实现。我看过很多关于这些的教程,但在我看来,没有抽象类我可以完成我的工作,所以我需要使用抽象类。实际上,我想知道 abstract 和 interface 的确切用途以及它会有什么帮助。

【问题讨论】:

  • 我看到了这个问题的答案,但我不清楚。
  • 接口是模块之间的契约协议。将接口视为您声明您的模块具有执行能力的东西。抽象类是那些部分或全部功能的默认实现。一个很好的例子:public interface Vehicle { public int move(int miles); }public abstract Car { public int move(int dest) { miles += 1; } }

标签: oop interface abstract-class


【解决方案1】:

真正了解这两种机制在编程中的作用是一项很难教授的方法,因为在纸面上它们有很多相似之处,而在代码中更是如此,具体取决于语言。您提出的问题可能会引发许多重复的引用,因为这是一个经常被问到的问题。但是要专注于询问的前提,我会看看是否可以添加更多上下文。

接口

一种在类之间声明公共相关属性和方法的方式。类定义可以继承其中的许多,并且由每个声明继承所述接口的类来实现成员和方法。

抽象类

与接口类似,抽象类声明了共同的相关属性和方法,但是一个类只能继承一个抽象类,这是两者之间的主要定义特征(也是明显的)差异之一。由于这个特性,您经常会听到抽象类被称为基类(尽管任何类都可以是基类,只要它不是sealedfinal)。其他一些与语言相关的差异包括能够定义静态、实例化、保护和虚拟(可以被覆盖)方法。

如您所见,这两种机制都有其用途,并且各有其所不具备的东西。这意味着有时一个相关而另一个不相关,有时同时需要两者。

柯达

【讨论】:

    猜你喜欢
    • 2016-01-24
    • 2011-03-31
    • 2011-07-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多