-2

可能重复:
Java 接口?

我不是 Java 的最新成员,但其中有一件事我至今无法理解,接口解决的目的到底是什么?我知道为了用java附加多重继承,可以使用它,但这不应该是灵魂的原因。接口的大多数其他目标都可以由抽象类来实现。即使是书籍也没有给出足够的答案。

4

5 回答 5

1

接口不提供类的多重继承。虽然接口可以扩展多个其他接口。

接口类似于合同。例如,您是一类名为 Human 的对象。然后,您有多个合同要履行,这些合同并非对所有 Human 对象都通用。比如你支付手机合约,给老婆做饭等等。

接口只是告诉你对象被契约为你做什么。正如 Class 所定义的那样。

希望有帮助。

于 2012-08-22T10:41:26.507 回答
1

我知道为了用java附加多重继承,可以使用它,但这不应该是灵魂的原因

为什么你可以拥有多个接口继承这一事实对你来说不是一个真正重要的解决方案,你没有解释。
除了这个非常重要的事实(这有助于 Java 不存在菱形问题C++)——认为这没什么大不了的——它还模拟了对象之间的一种不同类型的关系。
一个abstract类将用于对is-a关系建模。通过该接口,您可以对has-a关系捕获组合进行建模,并且您还可以在类之间组合常见的功能,否则这些功能将彼此无关。

于 2012-08-22T10:48:46.290 回答
0

我给你一个使用接口的小例子。

我有一个Company包含一个ArrayList<Employee> employees 和一个函数的类,giveRaise()它通过增加员工的薪水来提高员工的工资。

现在想象一下Employee,我有三个班级Manager,而不是SalesPerson,,,他们都得到了加薪,但每个班级都不同。Developer

您认为您可以创建一个名为 Employee 的超类,但您不想创建相同的方法 giveRaise(),并且您不想对 giveRaise() 进行默认处理。

所以你需要做的是每次你创建一个继承自Employee你想要强制它实现函数 giveRaise 并定义它的类(如开发人员编写一个新类)。

这就是接口派上用场的地方。当然,您可以使用抽象类。但是一个接口你仍然可以从另一个类继承。

于 2012-08-22T10:45:28.933 回答
0

定义Type接口是最好的选择。4-Classes And Interfaces从阅读章节Effective Java

于 2012-08-22T10:36:03.013 回答
0

由于它是通用接口的最大优势,您可以开发更自主的程序部分,因为在接口上您有某种合同需要实现,并且您可以依赖它会在那里您使用(在程序的其他部分)。

于 2012-08-22T10:46:20.417 回答