2012-08-01 54 views
0

我正在阅读一本关于android的书,但是在一个minibook中刷了一些java东西。我已经阅读了一本关于Java的书,并且知道接口。这些书说跨类级别的界面“切割”

接口实现层次结构(如果你可以称之为 “层次结构”)跨越类扩展层次结构。这个想法是图4-1所示的 ,其中我垂直显示类扩展 并水平显示接口实现。 (Android的 KeyboardView类生活在android.inputmethod服务包。 都KeyboardView和清单4-3 实现Android的OnClickListener接口在自产自销myListener的类。)

Interface Cutting Across Classs Heirarchy

毕,巴里(2011-11 -14)。 Android应用程序开发All-in-One 对于傻瓜(p。197)。约翰威利和儿子。 Kindle版。

“切割类横纹”是否意味着兄弟类都扩展了界面......我不明白他们用这个图表指出的更多,并说它横切了垂直类的垂直领空在图4-3中......请解释一下,如果有特殊的概念,比我离开了它更深...

回答

2

无论是MyListenerKeyboardView - 班实行OnClickListener -interface。这使得这两类OnClickListener s。

这个想法如下:每个类都来自基类(Object是最基本的类)。这使得每个班级都是Object。根据面向对象的思考,你可以说的最抽象的事情是是,它是一个对象。回到界面,我们假设你有两个界面,SingerWriter。一个人可以成为一名歌手,一个人可以成为一名作家。但是他/她也可以兼得。

实现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

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

+0

感谢@Lukas Knuth我认为帮助我的最重要的事情不仅仅是它说明了我认为是陈述的内容,而且你在hireWriter中展示的内容以及hireSigner呼吁根据参数看到Guy类两个分开的事情。 – 2012-08-01 23:40:09