English 中文(简体)
为什么要打上摘要班和接口?
原标题:Why make Abstract classes and Interfaces?

我很想问一下的是,这一区别是什么,但现在却得到了回答。 但现在我 asking问,他们为什么会作出这些分歧? (这里讲java语的人,我不知道这是否也适用于其他语言)

这两种情况似乎非常相似。 摘要班可以界定一种方法体,而接口可以起,但可以继承多个接口。 因此,他们(在撰写 Java文时,我指的是Sun)做一件事,你可以写一个手法,这样一来可以由一个阶层继承一次以上。

在无法书写方法或延长我不见的多次时间方面,是否有一些好处?

最佳回答

由于允许班级继承同一方法签字的多种执行,导致出现一个明显的问题,在操作时间应当使用。

Java避免这种情况,只支持多个接口的遗产。 每个接口所申报的签名可以比较容易地合并(贾瓦基本上使用所有方法的结合)

问题回答

考虑这个例子:

public abstract class Engine
{
  public abstract void switchPowerOn();
  public abstract void sprinkleSomeFuel();
  public abstract void ignite();

  public final void start()
  {
    switchPowerOn();
    sprinkleSomeFuel();
    ignite();
  }
}

摘要班子可以帮助你掌握能够或不能压倒一切的坚实基础方法,但在这些方法中,它利用抽象的会合,为你提供做具体事情的机会。 在我的例子中,不同的发动机在如何转换电力、减少一些燃料用于燃气以及进行电解方面有着不同的应用,然而,发动机的起始系列<>总是一样的。

这种模式被称为“模板方法”,非常坦率地说,是 Java对我来说唯一明智的抽象课程。

让他们做一件事,是Schala guys与Traits走的路,后者是一个能够有办法并支持多重遗产的接口。

我认为,对我来说,接口是干净的,因为它们只规定了要求(通过合同设计),而抽象的班级界定了共同行为(实施),因此是不同工作的一种不同工具? 接口还可能使得在汇编时间时能够更有效地制定守则?

您所描述的另一种做法是C++(如恶毒)采用的方法。 与这种“多重继承”有关的问题非常复杂,在C++中有几个批评者。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签