两个类具有相同的API但实现不同意味着什么?

时间:2015-12-27 09:08:42

标签: java oop object

我是Java和面向对象编程的初学者,对概念有些困难。对于家庭作业,我需要编写两个具有相同API的不同类,但实现方式不同。这是什么意思,它是如何工作的?

4 个答案:

答案 0 :(得分:3)

我会告诉你。这是两个班级有相同api的例子。

interface ISpeak {
    void sayHi();
}

class Teacher implements ISpeak{
    @Override
    public void sayHi() {
        System.out.println("Hi!I am a Teacher!");
    }
}

class Student implements ISpeak{
    @Override
    public void sayHi() {
        System.out.println("Hi!I am a Student!");
    }
}

答案 1 :(得分:1)

相同的API意味着这两个类包含完全相同的公共方法列表(每个方法具有与另一个类相同的方法名称和方法参数)。这些方法的实现在每个类中可以不同。此外,每个类还可以具有不出现在其他类中的私有方法,因为私有方法不是类向其用户提供的API的一部分。

API通常由Java在接口中定义,因此具有相同API的两个类通常会实现相同的接口。

答案 2 :(得分:1)

你问的是简单的语言,而不是"电脑说:"

界面就像合约。合同可能会说我们

  1. 告诉我你的名字(getName())
  2. 告诉我你的排名(getRank())
  3. 告诉我你的号码(getNumber())
  4. 合同有一个名字(通常以"能够" - 可观察等等结尾)让我们说可识别。 如果我们声明我们实施合同,我们必须满足其所有要求。

    你可能是一个人,我可能是一个机器人 - 具有其他不同特征和行为的不同类。

    class Human extends Object implements Identifiable
    class Robot extends Object implements Identifiable
    

    该程序可以将我们视为非常不同的对象。它可以告诉机器人去自行停靠和充电。它可以告诉人类只做人类可以做的事情。但是它可以让他们中的任何一个认出来。

答案 3 :(得分:0)

在Java和现代OOP的更广泛的上下文中,它意味着两个class es应该实现相同的interface,从而有效地允许这些类的客户端依赖于该接口提供的抽象而不是实现这些具体课程的细节。