Java 如何使接口功能在赢得';不总是一样的吗?

Java 如何使接口功能在赢得';不总是一样的吗?,java,function,methods,interface,package,Java,Function,Methods,Interface,Package,我必须为一个包制作一个接口。此接口需要calculateVolume()和calculateSurfaceArea()方法。问题是,Cube、Sphere和column类将使用此接口,它们有不同的公式来解决这些问题。所以我想知道如何使接口功能,使所有三种不同的计算都得到满足 附带问题:我如何创建一个clone()方法,它是用来做什么的?相同的名称,不同的实现,不是接口的用途吗?克隆用于制作对象的完整副本(所有成员的副本)。在接口中,您声明了方法,但没有实现它们。接口就是这样的:一个方法列表,其中

我必须为一个包制作一个接口。此接口需要
calculateVolume()
calculateSurfaceArea()
方法。问题是,
Cube
Sphere
column
类将使用此接口,它们有不同的公式来解决这些问题。所以我想知道如何使接口功能,使所有三种不同的计算都得到满足


附带问题:我如何创建一个
clone()
方法,它是用来做什么的?

相同的名称,不同的实现,不是接口的用途吗?克隆用于制作对象的完整副本(所有成员的副本)。

在接口中,您声明了方法,但没有实现它们。接口就是这样的:一个方法列表,其中包含执行不同操作的参数和返回类型,但没有任何实现。例如:

public interface Shape
{
  double calculateVolume();

  double calculateSurfaceArea();
}
然后,当您要实现接口时:

public class Cube
  implements Shape
{
  private double sideLength;

  @Override
  public double calculateVolume()
  {
    return sideLength * sideLength * sideLength;
  }

  // etc.
}

这一切都应该说清楚

在接口中,您只能声明方法签名,实际实现将在实现类中。不同的实现类可以有不同的逻辑,所以在接口中我实际上不会做任何计算?只要把“calculateSurfaceArea(){}”?@pleasehelp:“所以在界面中我实际上不会做任何计算?”对。我建议您从当前任务中退一步,学习一些基本的Java教程(没有
{}
,您还需要一个结果类型,例如
double
或其他类型)。接口永远不能有实现。它应该类似于public int calculateSurfaceArea();