Java 抽象方法必须在类或接口中给出定义吗?

Java 抽象方法必须在类或接口中给出定义吗?,java,abstract-class,Java,Abstract Class,我认为在一个界面中,我们通常会解释这个方法会做什么。然后在实现接口的类中,我们只编写方法的实现。因此,我认为我们将在接口中提供抽象方法的定义,但我不确定。如果你知道答案,请详细解释 定义和实现是同义的。方法的定义就是它的实现 抽象方法没有定义/实现,它们只是声明的。声明列出了方法的名称、参数和返回类型,但不包括方法体 interface I { // Declaration void method(int arg); } class C implements I { /

我认为在一个界面中,我们通常会解释这个方法会做什么。然后在实现接口的类中,我们只编写方法的实现。因此,我认为我们将在接口中提供抽象方法的定义,但我不确定。如果你知道答案,请详细解释

定义和实现是同义的。方法的定义就是它的实现

抽象方法没有定义/实现,它们只是声明的。声明列出了方法的名称、参数和返回类型,但不包括方法体

interface I {
    // Declaration
    void method(int arg);
}

class C implements I {
    // Definition
    public void method(int arg) {
        System.out.println(arg);
    }
}

接口定义实现它的类所需的行为。该接口旨在定义:

  • 方法的签名
  • 该方法的结果是什么
您可以将界面想象为实现的“用户端”。用户想知道:这个方法做什么?我能期待什么?我怎么称呼它?用户不关心它是如何完成的,只是他得到了预期的结果

实现方法定义方法的实现。这门课的任务是找出如何实现目标。不同的实现类可以使用不同的方法实现相同的结果


因此,总而言之,接口定义了方法签名,实现类定义了方法体。

定义与实现相同。在接口中,只声明抽象方法。这意味着您要指定方法的签名及其返回的内容。你没有定义它是如何工作的

interface I {
    // Declaration
    void method(int arg);
}

class C implements I {
    // Definition
    public void method(int arg) {
        System.out.println(arg);
    }
}
例如

public interface Draw
{
  public void drawCircle(int radius);
}
这里我们只声明drawCircle()方法,指定输入参数和输出参数

实际实现在实现接口的类中指定

public class DrawTool implements Draw
{
 public void drawCircle(int radius)
{
  // Give the logic for drawing Circle.
}
}

因此,您在类中定义了抽象方法drawCircle(),即绘制圆的逻辑。

这个问题有点模糊。你所说的“解释该方法的作用”是什么意思?接口只描述公共API。您必须真正了解以下内容: