在OOP中,自C++面世以来就已变得非常瞩目的一个问题就是,是否所有的类最终都继承自单一的基类。在Java中,答案是yes,这个终极基类的名字就是Object。

事实证明。单根继承结构带来了很多好处。

在单根继承结构中的所有对象都具有一个公用接口,所以它们归根到底都是相同的基本类型。另一种结构是无法确保所有的对象都属于同一个基本类型。从向后兼容的角度看,这么做能够更好地使用C模型,而且受限较少,但是当要进行完全的面向对象程序设计时,则必须构建自己的继承体系,使得它可以提供其他OOP语言内置的便利。并且在所获得的任何新类库中,总会用到一些不兼容的接口,需要花力气(有可能要通过多重继承)来使新接口融入你的设计之中。这么做来换取C++额外的灵活性是否值得呢?如果需要的话----如果在C上面投资巨大,这么做就很有价值。如果是刚刚从头开始,那么像Java这样的选择通常会更高的生产率。

单根继承结构保证所有对象都具备某些功能。因此你知道,在你的系统中你可以在每个对象上执行某些基本操作。所有对象都可以很容易地在堆上创建,而参数传递也得到了极大的简化。

单根继承结构使垃圾回收器的实现变得容易的多,而垃圾回收器正是Java相对C++的重要改进之一。由于所有对象都保证具有其类型信息,因此不会因无法确定对象的类型而陷入僵局。这对于系统级操作显得尤其重要,并且给编程带来了更大的灵活性。

java单根结构_对象导论:单根继承结构相关推荐

  1. Android人生整理第二章:Java编程第一节-对象导论

    抽象过程:建立解空间(问题建模) 和问题空间 (问题存在) 关联 万物皆为对象 程序是对象的集合,通过发送消息来告知彼此要做的 每个对象都有自己的由其他对象构成的存储 所有对象都有类型 某一特定类型的 ...

  2. JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系

    文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...

  3. 浅谈《think in java》:一 对象导论总结

    清单1. 抽象机制,面向对象程序设计方式 java所基于Smalltalk的特性表现一种纯粹的面向对象设计方式: 万物都是对象 程序是对象的集合(容器),他们通过发送消息(发送请求)来告知彼此所要做的 ...

  4. automapper java 有什么_对象映射工具AutoMapper介绍

    AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间. 一. AutoMapper ...

  5. java 优先队列从小到大_算法导论——辅助数据结构:优先队列(从小到大)

    package org.loda.structure; /** * * @ClassName: MinQ * @Description: 从小到大排列的优先队列 * @author minjun * ...

  6. 在java语言中_类间的继承关系是_【填空题】在Java程序里类之间的继承关系只能是________。...

    [多选,X型题] 能垂直传播的病毒有() [多选,X型题] 能垂直传播的病毒有() [多选,X型题] 持续感染类型包括() [判断题] "有可靠的数据来源"不是目标分解的原则之一. ...

  7. jvm内存结构_浅谈JVM内存结构

    JVM 可以分为 5 个部分,分别是: 类加载器(Class Loader):加载字节码文件到内存. 运行时数据区(Runtime Data Area):JVM 核心内存空间结构模型. 执行引擎(Ex ...

  8. python程序的循环结构_四、python程序结构之循环结构

    循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令.当然你可能已经注意 ...

  9. 实现树状结构_组合模式 - 树状结构的优雅实现

    在编程实践中,经常会遇到树状结构的场景,比如我们的浏览器窗口,比如文件系统. 那么,在处理树状结构的时候有什么较好的方式呢? 现在,我们就来学习一种利用组合模式的方法. 如上图所示,我们通过程序输出的 ...

最新文章

  1. 烂泥:nginx同时支持asp.net与php
  2. C#中的DBNull、Null、和String.Empty解释
  3. c++ vector拷贝构造_JDK源码分析-Vector
  4. 无法渲染窗口发黄_基础c4d教程:OC渲染器的立体光照
  5. JZOJ 1667【AHOI2009】中国象棋——dp
  6. [转载] 用pandas进行数据分析实战
  7. HDU 4031 Attack
  8. C++中常用的库函数 (自用)
  9. 轻量级网络——ShuffleNetV2
  10. android数据线接口定义,数据线接口种类(手机数据线原来还有这几种!)
  11. TypeScript瞎看看
  12. appium之toast处理
  13. destoon参考大全
  14. 网站使用微信网页授权,qq登录
  15. xctf攻防世界web新手练习区--write up
  16. 转载:用聚宽实现一个多因子策略
  17. 微信小程序云函数服务器,微信小程序云函数使用的几点说明
  18. 计算机rom和硬盘,都是存储器,但RAM、ROM、闪存、硬盘怎么分?
  19. [JZOJ6355] 【NOIP2019模拟】普
  20. kettle spoon判断增量更新_kettle增量更新设计

热门文章

  1. 牛顿后插matlab,大神求解析程序~~关于牛顿插值多项式的matlab程序
  2. Opera官网打不开 下载Opera最新版本的实际地址
  3. LayUI可选择可输入下拉框
  4. STM32自学笔记15-步进电机驱动项目-磁编码器MT6816驱动
  5. 电商API接口获取商品详情数据
  6. 偏最小二乘,主成分分析,主成分回归,奇异值之间的关系
  7. Microsoft Graph PowerShell v2 发布公开预览版 - 一半的大小,加速的自动化体验
  8. 房价会不会降?这位机器人八小时就能建造一栋房屋 | 聚焦
  9. 智能工厂在智能制造企业中的实践应用-东杰智能
  10. 【成员故事】CSDN杨东杰:生态运营需要一个自己的圈子