【问题标题】:Interface, Protocol & Abstract class接口、协议和抽象类
【发布时间】:2013-08-24 16:41:03
【问题描述】:

在学习虚函数时,我遇到了三个术语 - 接口、协议、抽象类。

谁能解释一下它们之间的区别吗?

【问题讨论】:

  • 您肯定能够找到这些术语的一些定义。那么我们应该解释哪些具体不清楚的地方?
  • 请告诉我们您到底对什么感到困惑。
  • 查阅 Stroustrup 的词汇表 - stroustrup.com/glossary.html。如果有不清楚的地方,请在此处提问。
  • 在 SChepurin 提供的链接中,抽象类已被定义为仅定义接口的类。那么两者没有区别吗?在其他地方,我发现两者都被定义为无法实例化的类。
  • 接口是一个通用概念,抽象类是在C++中实现这个概念的一种手段。

标签: java c++ class virtual-functions


【解决方案1】:

界面: 接口是抽象方法的集合。一个类实现了一个接口,从而继承了接口的抽象方法。 抽象类: Java 中的抽象类是包含一个或多个抽象方法的类,这些抽象方法只是没有主体的方法声明,即没有实现类或方法的可执行代码。抽象方法就像方法的原型,声明方法的返回类型和参数列表,但不提供方法的实际实现。 注意:不了解协议

【讨论】:

    【解决方案2】:

    我可以解释abstract classinterface 之间的区别。
    1。 interface :它是一组在接口中没有定义主体的方法。这意味着,在接口中你可以只声明方法,不能定义主体。主体必须在派生类中定义。
    2。抽象类:它是接口和类的混合体。其中一些方法用主体声明,一些方法声明为抽象。抽象意味着方法在类中声明,而不是在类中定义,就像接口一样。但是在抽象类中,您可以拥有具有默认行为的方法,这在接口中是不可能的。在派生类中必须定义所有抽象方法或派生类应声明抽象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-19
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2016-09-27
      • 1970-01-01
      相关资源
      最近更新 更多