我正在阅读一本关于android的书,但刷过一些迷你书中的java东西。我已经读过一本关于Java的书,并且知道接口。书上写着
接口实现层次结构(如果你可以称之为 “层次结构”)跨越类扩展层次结构。这个想法是 如图4-1所示,我在其中垂直显示类扩展 并水平显示界面实现。 (Android的 KeyboardView类存在于android.inputmethod服务包中。 KeyboardView和清单4-3中的自行开发的MyListener类 实现Android的OnClickListener接口。)
Burd,Barry(2011-11-14)。 Android应用程序开发All-in-One 对于傻瓜(第197页)。约翰威利和儿子。 Kindle版。
“整个班级的切割”是否仅仅意味着兄弟类扩展了界面......我不知道他们用这个图表指出了什么,并且说它在图4中横向切割了类垂直的heirchy -3 ...请解释是否有比我得到的更深刻的特殊概念......
答案 0 :(得分:2)
MyListener
和KeyboardView
- 类都实现了OnClickListener
- 接口。这使得这两个类OnClickListener
s。
这个想法如下:每个类派生自一个基类(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
通过实现接口,您可以告诉您的代码该对象是:
Object
Singer
Writer
通过班级层次结构"切断"通过不从更多类派生,而是通过实现接口来提供有关类的更多信息。