花10分钟认真的看完一篇文章,或许会有意想不到的收获!

我们都知道java是单继承的,就是一个类只能extends一个父类。但是你知道吗,其实java中有一个类是所有类的父类,就是Object类,这是一种单根继承结构。那么java语言在设计的时候为什么要这么做呢?今天我们就来一探究竟!

01是如何继承Object类的

java中所有类在没有声明要继承的类的时候,都会默认去继承Object类

通过上面这句话,我们其实可以推断出,Object其实是java中所有类的父类。

一、我们来看一下javaAPI中Object都有哪些方法

二、我们再来看一个例子

classTest这个类没有继承任何类,也没有显式地去继承Object类,但是有Object类的所有方法。所以,这就印证了我们上面的那句话:java中所有类在没有声明要继承的类的时候,都会默认去继承Object类

02单根继承的好处

一、单根继承结构中所有对象都具有一个共用接口,所以它们归根到底都是相同的基本类型。这样一来就很利于java的向上转型了。传递参数的时候如果不明确是传什么参数,就可以用Object代替。

public void function(Object ob)

这样这个方法可以接收String类型的参数,也可以接收int类型的参数了。因为String和int都继承了Object,本质上是一种类型。

二、每个类都有了一些很常用的基础功能了,想equals、toString这些方法都是非常常用,甚至是每个类都需要的。当采用单根继承结构时就可以让所有的类都拥有这些方法了。

三、方便垃圾回收机制,因为可以从Object这个跟上一点一点的往下找,方便找到垃圾的位置

说到底,java语言这样去设计就是为了更好的代码复用和带来更好的程序执行效率。

本文相关词条概念解析:

继承

继承(拼音jìchéng),指一个对象直接使用另一对象的属性和方法。也指按照法律或遵照遗嘱接受死者的财产、职务、头衔、地位等。继承权被剥夺后,该继承人即丧失了承受遗产的权利。继承制度是同特定的社会制度相联系的,是在社会出现私有制、分裂为阶级以后随同国家的产生而产生的。继承人接受或放弃继承的意思表示,是单方行为,具有法律效力。继承机制规定,子类可以拥有超类的所有属性和方法,也可以扩展定义自己特有的属性,增加新方法和重新定义超类的方法。

java中单根_通俗易懂的告诉你什么是java的单根继承结构相关推荐

  1. java 中符号_谁能告诉我java中符号的用法,见代码

    展开全部 大家都知道Vector以及其他的容器可以不加任何修饰地e68a8462616964757a686964616f31333236373765存储任何类型的对象,这给我们带来了极大的方便,也使得 ...

  2. protobuf在java中使用_记录:Protocol Buffers(protobuf)在Java开发中使用

    1.编写一个.proto文件命名为:addressbook.proto,该文件内容来自protocal-buffers官网 2.使用protoc-2.6.0-win32.zip解压后的protoc.e ...

  3. 简述java中异常_柴涛666 的日志-简述java中处理异常的两种方式。

    抓try 抛throwspackage 异常; import java.util.Scanner; public class a { public static void main(String[] ...

  4. java中的进制输出转换_Java I/O : Java中的进制详解

    作者:李强强 上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算.这一讲,泥瓦匠带你走进Java中的进制详解. 一.引子 在Java世界里,99%的工作都是处理这高层. ...

  5. java框架核心技术_你必须掌握的 21 个 Java 核心技术!(干货)

    点击上方"java进阶架构师",选择右上角"置顶公众号" 20大进阶架构专题每日送达 51闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘 ...

  6. java future用法_你必须掌握的 21 个 Java 核心技术

    作者:工程师-搁浅来源:https://www.jb51.net/article/122070.htm 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知 ...

  7. java中clone方法_Java Object clone()方法– Java中的克隆

    java中clone方法 Cloning is the process of creating a copy of an Object. Java Object class comes with na ...

  8. java 核型技术_你必须掌握的 21 个 Java 核心技术!(转自Java技术栈)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java. 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE ...

  9. java避免空指针异常_第1部分:在现代Java应用程序中避免空指针异常

    java避免空指针异常 空做与不做 (Null do's and don'ts) In the talk Null References: The Billion Dollar Mistake, Si ...

最新文章

  1. 数据库SQL Server
  2. Linux NAPI/非NAPI
  3. linux内核7大功能,Linux Kernel5.10十个值得关注的功能
  4. Java-Java I/O流解读之Object Serialization and Object Streams
  5. Java 相对路径和绝对路径的简单介绍
  6. 解决sublime text无法安装插件问题
  7. 通用计算机有哪四个部分,计算机硬件由哪几部分组成?各部分的作用是什么?...
  8. win7 'IIS APPPOOL\Classic .NET AppPool' 登录失败
  9. RocketMQ消息轨迹-设计篇
  10. java sonar教程_SonarQube配置与使用教程.PDF
  11. 是程序员就应该知道的东西
  12. theoretical-零基础学Qt4编程之Qt核心机制与原理之信号与槽-
  13. 创造与魔法241服务器系统什么时候修好,《创造与魔法》数据互通,交流不愁 4月27日更新维护公告...
  14. VMware网卡配置
  15. UML类图画法全程解析
  16. 控制工程中的数学建模(8)——典型环节的数学模型(之四)
  17. UC缓存的php格式视频,UC缓存视频变成本地mp4_下载视频怎么转换mp4_我的下载站
  18. 输入网络密码来进入共享计算机,Win7系统与其他电脑共享文件提示输入网络密码如何解决...
  19. 微信小程序下载图片到本地
  20. 【linux】lsb_release -a命令

热门文章

  1. 深聊性能测试,从入门到放弃之: Windows系统性能监控(三)任务管理器介绍及使用。
  2. Android studio 改app图标,名字及一键拨号
  3. 虚拟机配置windows7+office2010
  4. 【动态规划DP,二维动归】poj1651,Multiplication Puzzle
  5. 我国建成世界第一超级计算机,国防科大研制出超级计算机 运算性能世界第一...
  6. 当外汇储备增加时,国内是不是就必须发行更多货币?
  7. 如何使用加密锁加密自己程序
  8. webmail lite php,WebMail Lite - 从Gmail,Yahoo,Outlook和其他管理和下载邮件
  9. 嵌入式Linux驱动笔记(十六)------设备驱动模型(kobject、kset、ktype)
  10. 互联网IT就业市场,你要说最有市场的一定是它,linux内核视频教程全套