Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接口“;切割“;跨类层次结构_Java_Class_Interface - Fatal编程技术网

Java 接口“;切割“;跨类层次结构

Java 接口“;切割“;跨类层次结构,java,class,interface,Java,Class,Interface,我正在读一本关于安卓系统的书,但在一本迷你书中浏览了一些java内容。我已经读过一本关于Java的书,并且了解接口。书上说 实现层次结构的接口(如果可以称之为 “层次结构”)跨越类扩展层次结构。这个想法是正确的 如图4-1所示,其中我垂直显示类扩展 并水平显示接口实现。(安卓的 KeyboardView类位于android.inputmethod服务包中。 清单4-3中的KeyboardView和自制的MyListener类 实现Android的OnClickListener接口。) 伯德,巴

我正在读一本关于安卓系统的书,但在一本迷你书中浏览了一些java内容。我已经读过一本关于Java的书,并且了解接口。书上说

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

伯德,巴里(2011-11-14)。安卓应用开发一体机 对于假人(第197页)。约翰·威利和他的儿子们。Kindle版


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

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

其思想如下:每个类都派生自一个基类(
Object
是可用的最基本类)。这使得每个类都成为
对象。从面向对象的角度考虑,你能说的最抽象的东西是,它是一个对象

回到接口,假设您有两个接口,
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
通过实现接口,您可以告诉代码此对象是:

  • 对象
  • 歌手
  • Writer

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

    谢谢@Lukas Knuth我认为对我最大的帮助不仅仅是它说出了我认为它所陈述的内容,但是在hireWriter和hireSigner调用中显示,根据参数,Guy类被视为两个独立的东西。