news 2026/4/17 22:12:33

父类的私有成员会被子类继承吗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
父类的私有成员会被子类继承吗

结论

不会被子类继承

私有变量

子类对象的堆内存中,确实包含了父类的的私有变量,只是子类代码无法直接访问,这不叫继承。

私有方法

父类的私有方法绝对没有被继承。私有方法是静态绑定的,子类根本不知道父类私有方法的存在。

方法在哪里?

所有的方法(无论公有、私有、静态、非静态),其字节码指令都统一存放在方法区中,属于 Class 对象的数据。

怎么调用?

对象内存中只有一个隐藏的引用指向方法区(可以理解为类元数据的指针)。当调用方法时,JVM是拿着“类元数据指针 + 方法签名”去方法区里找方法的,而不是在对象内部存了一大堆方法地址。

总结

  1. 关于方法(存在于方法区):
  • 子类只继承父类的 非私有、非静态 的实例方法。
  • 父类的 私有方法 不被继承(静态绑定,子类不可见)。
  • 父类的 静态方法 不被继承(属于父类本身,子类只是拥有访问权限)。
  • 被重写的方法,其多态状态下的入口会被子类方法替换。
  1. 关于变量(存在于堆内存的对象实例中):
  • 子类的对象实例在堆内存中,物理上包含了父类所有的实例变量(包括 private 私有变量,它们确实占用了子类对象的内存空间)。
  • 但是,从语法和继承的概念上讲,子类只能继承(即直接访问)父类的 非私有 实例变量。对于父类的 private 变量,子类只是“物理上包含了它们的空间”,但语法上“不可见、不可直接访问”(必须通过父类提供的公共getter/setter间接访问)。
  • 父类的 静态变量 不在对象内存中,不被继承。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:05:11

性能工程兴起:从测试到优化全流程

当“性能”成为系统工程在数字化浪潮席卷全球的今天,软件系统的性能已从一项“加分项”演变为决定用户体验、业务成败乃至企业存亡的核心要素。对于软件测试从业者而言,我们正见证并亲身参与一场深刻的变革:传统的“性能测试”正在向更全面、…

作者头像 李华
网站建设 2026/4/17 21:59:48

告别网盘限速:八大平台直链下载神器完全指南

告别网盘限速:八大平台直链下载神器完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…

作者头像 李华