博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《数据结构与抽象:Java语言描述(原书第4版)》一P.3.3 接口作为数据类型
阅读量:6005 次
发布时间:2019-06-20

本文共 868 字,大约阅读时间需要 2 分钟。

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

P.3.3 接口作为数据类型

当声明变量、数据域或方法的参数时,可以将Java接口用作数据类型。例如,前面的方法giveLastNameTo有一个类型为NameInterface的参数:

image

传送给这个方法的任何实参,必须是实现NameInterface的类的对象。

为什么不将aName的类型声明为一个类,如Name呢?我们想让接口独立于实现它的类,因为实现一个接口的类可以有多个。使用NameInterface作为参数的类型,能保证方法的实参将具有NameInterface中声明的所有方法。通常,如果数据类型是接口,你能保证方法的参数有特定的方法,即接口中声明的那些方法。另一方面,参数只有那些方法。
如果一个类C的头不含有implements NameInterface,但仍实现了接口中的方法,又会如何呢?你不能将C的实例做为参数传送给giveLastNameTo方法。

注:通过将接口用作变量的类型,可以说明,这个变量可以引用一个对象,该对象有一组方法且仅有这组方法。

注:接口类型是引用类型。
如下的变量声明

image

使得myName成为一个引用变量。现在myName可以指向实现NameInterface的任意一个类的任意对象。故如果Name实现了NameInterface,且有

image

则myName.getFirst()返回指向字符串"Coco"的引用。如果类AnotherName也实现了NameInterface,且随后写了语句

image

则myName.getFirst()返回指向字符串"April"的引用。

自测题7 为能利用NameInterface,需要对问题5中写的接口及实现它的类Student做哪些修改?

转载地址:http://bcvmx.baihongyu.com/

你可能感兴趣的文章
Oracle 大举裁员暗示了什么?
查看>>
zabbix 的部署 centos7
查看>>
MYSQL 权限
查看>>
网站功能定位
查看>>
Exchange命令行管理程序移动存储组和数据库
查看>>
Java游戏引擎libgdx的简介
查看>>
curl监控站点响应时间
查看>>
gdbserver调试共享库(三)
查看>>
11.17作业总结
查看>>
SSL***_over_asa
查看>>
18. Python 类
查看>>
什么是REST ?
查看>>
Mem系列函数与Str系列函数总结(二) memcmp与strcmp/strncmp
查看>>
Skype For Business 2015实战系列19:统一通讯之配置Exchange 2013 SP1
查看>>
Memcached与Redis(四)
查看>>
简单的SHELL脚本
查看>>
前端与移动开发之vue-day7
查看>>
简练软考知识点整理-ABC成本法和ABC分析图法
查看>>
多线程的坑--volatile
查看>>
100个容器周边项目,点亮你的容器集群技能树
查看>>