网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 核心技术 > 高级编程 > 纯继承与扩展  

纯继承与扩展

2003-11-22  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  学习继承时,为了创建继承分级结构,看来最明显的方法是采取一种“纯粹”的手段。也就是说,只有在基础类或“接口”中已建立的方法才可在衍生类中被覆盖,如下面这张图所示:
  
 

  可将其描述成一种纯粹的“属于”关系,因为一个类的接口已规定了它到底“是什么”或者“属于什么”。通过继承,可保证所有衍生类都只拥有基础类的接口。如果按上述示意图操作,衍生出来的类除了基础类的接口之外,也不会再拥有其他什么。
  
  可将其想象成一种“纯替换”,因为衍生类对象可为基础类完美地替换掉。使用它们的时候,我们根本没必要知道与子类有关的任何额外信息。如下所示:
  
 

  也就是说,基础类可接收我们发给衍生类的任何消息,因为两者拥有完全一致的接口。我们要做的全部事情就是从衍生上溯造型,而且永远不需要回过头来检查对象的准确类型是什么。所有细节都已通过多形性获得了完美的控制。
  
  若按这种思路考虑问题,那么一个纯粹的“属于”关系似乎是唯一明智的设计方法,其他任何设计方法都会导致混乱不清的思路,而且在定义上存在很大的困难。但这种想法又属于另一个极端。经过细致的研究,我们发现扩展接口对于一些特定问题来说是特别有效的方案。可将其称为“类似于”关系,因为扩展后的衍生类“类似于”基础类——它们有相同的基础接口——但它增加了一些特性,要求用额外的方法加以实现。如下所示: 网管联盟bitsCN_com
  
 

  尽管这是一种有用和明智的做法(由具体的环境决定),但它也有一个缺点:衍生类中对接口扩展的那一部分不可在基础类中使用。所以一旦上溯造型,就不可再调用新方法:
  

  若在此时不进行上溯造型,则不会出现此类问题。但在许多情况下,都需要重新核实对象的准确类型,使自己能访问那个类型的扩展方法。在后面的小节里,我们具体讲述了这是如何实现的。

TAGs扩展   继承   接口   衍生   基础   方法   属于   因为   什么    
 上一篇:数组和第一类对象   下一篇:继承和finalize()
相关文章列表
纯继承与扩展 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.用java编写的小游戏源代码分析
2.在.Net程序中使用log4net记录日志
3.Java与sqlserver2000的连接
4.Java源代码案例--骑士巡游问题
5.Java游戏编程分析--棋子的拖动
6.JAVA 正则表达式4种常用的功能
7.Log4j的使用总结!(用于收藏救急用)
8.JFreeChart中柱状图的详细设置
9.学习教程:Java Annotation 高
10.JAVA对象转为Java String的几种常用方法
最新推荐文章:
1.该如何实践State模式
2.JFreeChart中柱状图的详细设置
3.Java Swing APIs可插拔式外观风格特性应
4.用信号量Semaphore实现互斥锁Mutex
5.使用Weblogic Integration的应用程序架构
6.设计Java应用程序
7.对Java嵌套类的讨论(上)
8.提高Java代码可重用性的三个措施
9.JAVA上加密算法的实现用例
10.总结篇:将内部类进行到底
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的