《数据结构与抽象:Java语言描述(原书第4版)》一P.3.2 实现一个接口
本节书摘来华章计算机《数据结构与抽象: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 实现一个接口相关推荐
- 数据结构(c语言版) 计算机科学丛书,数据结构与算法分析--C语言描述(原书第2版)(计算机科学丛书)...
摘要: 本书讨论数据结构和算法分析.数据结构主要研究组织大量数据的方法,而算法分析则是对算法运行时间的评估.随着计算机的速度越来越快,对于能够处理大量输入数据的程序的需求变得日益急切.可是,由于在输入 ...
- 数据结构与算法分析Java语言描述 原书超清第3版 下载
链接: https://pan.baidu.com/s/135hWyCK3SssLwMmeHn4PCg 提取码: 9kk7
- s数据结构替换子表java版_数据结构与算法分析Java语言描述(第3版) PDF和源码免费 下载...
<数据结构与算法分析Java语言描述(第3版)>PDF和源码免费 下载 免积分下载 用户下载说明: 图书简介: 数据结构:Java语言描述(原书第3版)是国外数据结构与算法分析方面的经典教 ...
- 《机器学习与R语言(原书第2版)》一2.3 探索和理解数据
本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区& ...
- 机器学习与R语言(原书第2版)》一1.4 实践中的机器学习
本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区& ...
- python数据科学导论_数据科学导论:Python语言(原书第3版)
数据科学导论:Python语言(原书第3版) 作者:(意)阿尔贝托·博斯凯蒂;(意)卢卡·马萨罗 著 出版日期:2020年02月 文件大小:48.52M 支持设备: ¥50.00 适用客户端: 言商书 ...
- 【第5期】终于等到你!《Effective Java 中文版》原书第3版!
"我很希望我10年前就能拥有这本书.有人可能认为我不需要任何Java方面的书籍,但是我需要这本书." --Java之父James Gosling 这段话出自Java之父James ...
- 《人件(原书第3版)》—— 01 此时此刻,一个项目正在走向失败
本节书摘来自华章出版社<人件(原书第3版)>一 书中的第1章,第1.1节,作者:(美)Tom DeMarco,Timothy Lister,更多章节内容可以访问云栖社区"华章计算 ...
- 《数据结构与算法分析—Java语言描述》pdf
下载地址:网盘下载 内容简介 编辑 "数据结构"是计算机专业的基础与核心课程之一,Java是现今一种热门的语言.本书在编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Jav ...
- 数据结构教程(Java语言描述)前两章总结
一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...
最新文章
- python 黑白tif提取边界像素坐标_OpenCV GrabCut算法:前景分割和提取
- mysql安装图解 mysql图文安装教程(详细说明)
- 前端学习(1437):vue一些链接
- 很多人都不清楚HEX文件格式
- LintCode MySQL 1921. 从不充值的玩家(where not in)
- Collection集合框架
- Linux Ubuntu/Centos7 定时备份mysql数据库
- Lua学习---编译生成lua和luac
- 桌面移到D盘回移不回去了怎么办
- J-Flash下载STM32用J-link的设置方法
- Excel 用 vba 批量插入/提取批注
- PD 协议初理解(转)
- 用Python写一个最简单的计时秒表
- 苹果7服务器是什么系统版本,最新系统 iOS14.7 Beta1 版本推出!
- JsonParseException: Unexpected character (‘sss‘ (code xxx)): was expecting a colon to separ
- 人工智能3d建模算法_AI人工智能是否可以替代UI和后期3D建模?
- 相干信号与非相干信号
- Java的思考01 - 当大老板还是小老板
- U蛋非VIP关闭115微门户资讯方法
- 人越往上走,就越孤独,因为没了对手!
热门文章
- 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
- 用 Hadoop 进行分布式并行编程, 第 1 部分 基本概念与安装部署
- Android原生开发modules方式导入Unity问题汇总
- Oracle安装时忘记设置密码
- laravel用redis保存session遇到的坑,没报错,但redis-cli就是查不到
- WPF绘制简单常用的Path
- OSChina 周四乱弹 —— 澳门首家货车上线啦
- ftl数据类型转换以及list遍历的使用
- windows下ngnix+php配置
- 《Build your own AngularJS》笔记分享