本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第1章 ,第1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 罗得岛大学  新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

P.3.2 实现一个接口

实现接口的任何类,必须在类定义的开头使用implements子句进行说明。例如,如果类Circle实现了接口Measurable,它的开头就是下面这种形式:

然后,类必须定义接口中声明的每个方法。在本例中,类Circle必须至少实现方法getPerimeter和getArea。
如果写一个实现Measurable的类Square,这个类的开头应该是这样的:

且它至少应该定义方法getPerimeter和getArea。显然,这两个方法的定义不同于它们在类Circle中的定义。
图P-3展示了包含Measurable、Circle、Square以及它们的客户的文件。

注:写接口是类的设计人员向其他程序员说明方法的一种方式。实现接口是程序员确保类已经定义了某些方法的一种方式。
注:不同的类或许以不同的方式实现同一个接口。例如,可以有多个类都实现接口Measurable,且为方法getPerimeter和getArea写各自的版本。
示例。想象用于圆、球体和圆柱体等不同几何形状的类。其中的每一个几何体都有一个半径。我们可以定义下列接口,让类来实现它:

接口能知道已经定义了半径,所以为这个量声明set方法和get方法。但是,不能为半径声明数据域。实现接口的类来做这件事。
实现这个接口的类Circle如下所示:

类定义了一个私有数据域radius,且实现了接口Circular中声明的方法setRadius和getRadius。接口中不能含有像radius这样的数据域,因为它是私有的。

注:类中定义的方法数可以超出它实现的接口中声明的方法数。例如,类Circle定义了方法getArea,它没有包含在接口Circular中。

多个接口。类可以实现多个接口。如果想这样做,只需列出所有的接口名,并以逗号分隔即可。如果类是从另一个类派生而来的,则implements子句永远在extends子句的后面。所以,可以写

要想记住这个次序,只需记住保留字extends和implements在类头中以字母序出现即可。
实现多个接口的类必须定义接口中声明的每个方法。如果在类实现的多个接口中出现了相同的方法头,则类中只需定义一个即可。
不能从多个基类派生一个类。这个限制避免了实现继承时可能出现的冲突。但Java接口含有方法的规格说明,但不实现它们。类可以实现这些规格说明,而不管它们出现在一个接口中还是出现在多个接口中。通过允许类来实现多个接口这种机制,Java既实现了多重继承,又去掉了它可能引起的混乱。

自测题5 写一个Java接口,它定义学生类并声明其中的方法。

自测题6 定义一个类,规范实现前一个问题中你写的接口。要包含数据域、构造方法及至少一个方法的定义。

《数据结构与抽象:Java语言描述(原书第4版)》一P.3.2 实现一个接口相关推荐

  1. 数据结构(c语言版) 计算机科学丛书,数据结构与算法分析--C语言描述(原书第2版)(计算机科学丛书)...

    摘要: 本书讨论数据结构和算法分析.数据结构主要研究组织大量数据的方法,而算法分析则是对算法运行时间的评估.随着计算机的速度越来越快,对于能够处理大量输入数据的程序的需求变得日益急切.可是,由于在输入 ...

  2. 数据结构与算法分析Java语言描述 原书超清第3版 下载

    链接: https://pan.baidu.com/s/135hWyCK3SssLwMmeHn4PCg    提取码: 9kk7

  3. s数据结构替换子表java版_数据结构与算法分析Java语言描述(第3版) PDF和源码免费 下载...

    <数据结构与算法分析Java语言描述(第3版)>PDF和源码免费 下载 免积分下载 用户下载说明: 图书简介: 数据结构:Java语言描述(原书第3版)是国外数据结构与算法分析方面的经典教 ...

  4. 《机器学习与R语言(原书第2版)》一2.3 探索和理解数据

    本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区& ...

  5. 机器学习与R语言(原书第2版)》一1.4 实践中的机器学习

    本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区& ...

  6. python数据科学导论_数据科学导论:Python语言(原书第3版)

    数据科学导论:Python语言(原书第3版) 作者:(意)阿尔贝托·博斯凯蒂;(意)卢卡·马萨罗 著 出版日期:2020年02月 文件大小:48.52M 支持设备: ¥50.00 适用客户端: 言商书 ...

  7. 【第5期】终于等到你!《Effective Java 中文版》原书第3版!

    "我很希望我10年前就能拥有这本书.有人可能认为我不需要任何Java方面的书籍,但是我需要这本书."  --Java之父James Gosling 这段话出自Java之父James ...

  8. 《人件(原书第3版)》—— 01 此时此刻,一个项目正在走向失败

    本节书摘来自华章出版社<人件(原书第3版)>一 书中的第1章,第1.1节,作者:(美)Tom DeMarco,Timothy Lister,更多章节内容可以访问云栖社区"华章计算 ...

  9. 《数据结构与算法分析—Java语言描述》pdf

    下载地址:网盘下载 内容简介 编辑 "数据结构"是计算机专业的基础与核心课程之一,Java是现今一种热门的语言.本书在编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Jav ...

  10. 数据结构教程(Java语言描述)前两章总结

    一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...

最新文章

  1. python 黑白tif提取边界像素坐标_OpenCV GrabCut算法:前景分割和提取
  2. mysql安装图解 mysql图文安装教程(详细说明)
  3. 前端学习(1437):vue一些链接
  4. 很多人都不清楚HEX文件格式
  5. LintCode MySQL 1921. 从不充值的玩家(where not in)
  6. Collection集合框架
  7. Linux Ubuntu/Centos7 定时备份mysql数据库
  8. Lua学习---编译生成lua和luac
  9. 桌面移到D盘回移不回去了怎么办
  10. J-Flash下载STM32用J-link的设置方法
  11. Excel 用 vba 批量插入/提取批注
  12. PD 协议初理解(转)
  13. 用Python写一个最简单的计时秒表
  14. 苹果7服务器是什么系统版本,最新系统 iOS14.7 Beta1 版本推出!
  15. JsonParseException: Unexpected character (‘sss‘ (code xxx)): was expecting a colon to separ
  16. 人工智能3d建模算法_AI人工智能是否可以替代UI和后期3D建模?
  17. 相干信号与非相干信号
  18. Java的思考01 - 当大老板还是小老板
  19. U蛋非VIP关闭115微门户资讯方法
  20. 人越往上走,就越孤独,因为没了对手!

热门文章

  1. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
  2. 用 Hadoop 进行分布式并行编程, 第 1 部分 基本概念与安装部署
  3. Android原生开发modules方式导入Unity问题汇总
  4. Oracle安装时忘记设置密码
  5. laravel用redis保存session遇到的坑,没报错,但redis-cli就是查不到
  6. WPF绘制简单常用的Path
  7. OSChina 周四乱弹 —— 澳门首家货车上线啦
  8. ftl数据类型转换以及list遍历的使用
  9. windows下ngnix+php配置
  10. 《Build your own AngularJS》笔记分享