首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跨类层次结构的接口“切割”

跨类层次结构的接口“切割”
EN

Stack Overflow用户
提问于 2012-08-01 23:08:32
回答 1查看 120关注 0票数 0

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

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

Burd,Barry (2011-11-14)。Android应用程序开发全合一的傻瓜(第197页)。约翰·威利和儿子。Kindle版。

“切割累加类等级”是否意味着兄弟类都扩展了接口.我不明白他们用这个图表指出了什么,并说它横贯横贯图4-3中的类的垂直传家宝.请解释一下,如果有比我所得到的更深刻的特殊概念.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-01 23:28:50

MyListenerKeyboardView-classes都实现OnClickListener-interface。这使得这两个类都是OnClickListener的。

其思想如下:每个类都来自一个基类(Object是可用的最基本的类)。这使得每个类都成为Object。从面向对象的角度来看,你可以说的最抽象的事情是,它是一个对象。

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

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

代码语言:javascript
运行
复制
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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11768861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档