【问题标题】:How to make an interface function when it won't always be the same? [closed]当界面功能并不总是相同时,如何制作界面功能? [关闭]
【发布时间】:2013-09-18 15:48:30
【问题描述】:

我必须为一个包创建一个接口。该接口需要calculateVolume()calculateSurfaceArea() 方法。问题是CubeSphereCylinder 类将使用此接口,它们有不同的公式来解决这些问题。所以我想知道如何使接口函数满足所有三种不同的计算?

附带问题:如何创建clone() 方法以及它的用途?

【问题讨论】:

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

标签: java function methods interface package


【解决方案1】:

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

public interface Shape
{
  double calculateVolume();

  double calculateSurfaceArea();
}

然后,当你来实现接口时:

public class Cube
  implements Shape
{
  private double sideLength;

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

  // etc.
}

The Oracle tutorials on interfaces 应该让这一切变得清晰。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多