0

我正在阅读一本关于 android 的书,但在迷你书中刷了一些 java 的东西。我已经读过一本关于 Java 的书并且知道接口。书上说

接口实现层次结构(如果你可以称它为“层次结构”)跨越类扩展层次结构。这个想法如图 4-1 所示,其中我垂直显示类扩展并水平显示接口实现。(Android 的 KeyboardView 类位于 android.inputmethod 服务包中。示例 4-3 中的 KeyboardView 和自制的 MyListener 类都实现了 Android 的 OnClickListener 接口。)

跨类层次结构的接口切割

巴里伯德 (2011-11-14)。Android 应用程序开发多合一傻瓜(第 197 页)。约翰威利父子。Kindle版。

“跨越类层次结构”是否只是意味着兄弟类都扩展了接口......我不明白他们用这个图指出了什么,并说它横向跨越了图 4-3 中的类垂直层次结构。 ..请解释是否有比我从中得到的更深的特殊概念...

4

1 回答 1

2

MyListener和- 类都KeyboardView实现了 - 接口OnClickListener。这使得这两个类都是OnClickListeners。

这个想法如下:每个类都派生自一个基类(Object是可用的最基本的类)。这使得每个类都成为Object. 就 OOP 而言,您可以说的最抽象的事情,它是一个对象。

回到接口,假设您有两个接口,Singer并且Writer. 一个人可以是歌手,一个人可以是作家。但他/她也可以两者兼而有之。

实现Singer和/或Writer告诉您有关对象的更多信息。一些代码:

class Guy implements Singer, Writer{
  // Empty
}
Guy chris = new Guy();

hireWriter(chris); // Accepts "Writer" as it's parameter
hireSinger(chris); // Accepts "Singer" as it's parameter

通过实现接口,你告诉你的代码这个对象是:

  1. 一个Object
  2. 一种Singer
  3. 一种Writer

这种“通过类层次结构切割”通过提供更多关于类的信息,而不是从更多类派生,而是通过实现接口。

于 2012-08-01T23:28:50.097 回答