java子类继承父类实际_java子类继承父类,是否生成父类对象?

从根本上来说,对象就是一个特殊结构的内存以及可以访问这块内存的代码。所以你这个问题其实就是一个到底如何看什么是对象的。

我不了解现在jvm的具体实现,所以只能就理论上进行下分析。

由于现代的编译器都可以对内存及其访问进行优化,所以,如果当子类增加了新的属性:

比如父类是一个字节和一个整数,子类又增加了一个字节和一个整数

而编译器对子类内存数据的位置进行了调整的话,那在逻辑层面上结构没有变化,但物理层面上,访问各项数据的地址可能就发生了变化。

而在子类初始化时是先统一分配内存,然后先调用父类的初始化器,再调用自己的初始化器的,而如果编译器调整了子类中父类那部分数据的地址的话,则子类所调用的父类初始化器其实是原本父类初始化器的一个多态函数(因为在物理层面上数据的访问地址发生了变化,所以访问的以及是一个新的数据结构了),实质上和原始的父类初始化器是两个函数。

这样的话,从子类来看,其父类的数据及初始化器都发生了变化,这个父对象和真正的父类的对象也就只具有逻辑上的等价性了。

所以这个问题,在逻辑上肯定是先要生成并初始化一个父对象,然后再增加自己的扩展并适当修改父类的行为,这本就是OOP的基本思想。但在物理层面上,则是根据实际情况由编译器自行决定。

因为现代程序技术(同样也是IT、甚至是整个工程技术领域)的核心思想就是自己管好自己的事,其他人只和我们通过接口/API进行契约,怎么干那是他的事,所以这个问题其实就是要看你站在哪边了,如果是研究编译器的,那肯定是没有生成父对象,如果只是用编译器进行编程,那就一定是先生成父对象,然后再进行扩展和修改

这个思想就是我们常说的透明性,跨过边界多了解点对方是如何工作的,有助于我们理解对方所提出的契约要求,这会帮助双方更好的配合工作,但你的重心是一定要先搞定自己一侧的东东,所以你的问题其实是没有深刻的理解到底什么是面对对象技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1257. 最小公共区域(最小公共祖先)

文章目录1. 题目2. 解题1. 题目 给你一些区域列表 regions ,每个列表的第一个区域都包含这个列表内所有其他区域。 很自然地,如果区域 X 包含区域 Y ,那么区域 X 比区域 Y 大。 给定两个区域 region1 和 region2 ,找到同时包含…

创建样式和样式表

css中的样式(或者规则)由两部分组成:选择器和声明块。每个声明块里面可以包含多条声明,它们之间由分号分隔。如下图所示: 链接外部样式表 外部样式表可以使网页打开的速度更快。但是浏览器在下载外部样式表的时候&…

java 程序输出 赵_编写一个完整的JAVA的程序

编写一个完整的JAVA的程序关注:84 答案:1 mip版解决时间 2021-02-05 08:43提问者妳螚鬧俄螚笑2021-02-05 02:591,接口Person Show()方法输出对象的描述信息。2.类Student 实现Person接口,另有以下属性和方法:属性(私有)String name。方法Student():构造…

LeetCode 1229. 安排会议日程(双指针)

文章目录1. 题目2. 解题1. 题目 你是一名行政助理,手里有两位客户的空闲时间表:slots1 和 slots2,以及会议的预计持续时间 duration,请你为他们安排合适的会议时间。 「会议时间」是两位客户都有空参加,并且持续时间…

LeetCode 1182. 与目标颜色间的最短距离(二分查找/DP)

文章目录1. 题目2. 解题2.1 二分查找2.2 DP1. 题目 给你一个数组 colors,里面有 1、2、 3 三种颜色。 我们需要在 colors 上进行一些查询操作 queries,其中每个待查项都由两个整数 i 和 c 组成。 现在请你帮忙设计一个算法,查找从索引 i 到…

java跳转html页面_springboot 2.0.8 跳转html页面

springboot 成功创建了后,继续写一下跳转到html页面的方法, 这里我把 jsp和html 分开两篇文章。然后再写一个两种方式整合的这篇 是跳转到html文件的1创建目录结果和html文件​ 2配置return 返回模版​ 3.UserController.java代码如下,这里就直接使用上…

LeetCode MySQL 1212. 查询球队积分

文章目录1. 题目2. 解题1. 题目 Table: Teams ------------------------- | Column Name | Type | ------------------------- | team_id | int | | team_name | varchar | ------------------------- 此表的主键是 team_id,表中的每一行都…

js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?

这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下。一般情况下, 发送 encodeURIComponent(parmeName)""encodeURIComponent(parmeValu…

Google Maps API 简易教程(四)

Google Maps 类型 一、基本地图类型 Google Maps API支持一下map类型: .ROADMAP(正式的,默认为2D地图) .SATELLITE(逼真的地图) .HYBRID(逼真地图道路和城市名) .TERRAIN(山脉和河流地图等等&am…

LeetCode MySQL 1077. 项目员工 III

文章目录1. 题目2. 解题1. 题目 项目表 Project: ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- (project_id, employee_id) 是这个表的主键 employee_…

Java什么是重用_深度解析:java必须掌握的知识点——类的重用

类继承的概念和语法类继承的概念根据已有类来定义新类,新类拥有已有类的所有功能。Java只支持类的单继承,每个子类只能有一一个直接超类(父类)。超类是所有子类的公共属性及方法的集合,子类则是超类的特殊化。继承机制可以提高程序的抽象程度,提高代码的…

Ajax-基础篇(持续更新01)

1&#xff1a;例子&#xff1a;下面的例子点击按钮会在不更新整个页面的情况下动态更新内容abcdefgchange abcdefg 代码如下&#xff1a; <html> <head> <script type"text/javascript" src"/jquery/jquery.js"></script> <scr…

LeetCode MySQL 1205. 每月交易II(union all)*

文章目录1. 题目2. 解题1. 题目 Transactions 记录表 ------------------------- | Column Name | Type | ------------------------- | id | int | | country | varchar | | state | enum | | amount | int | | trans…

java获取参数编码_java获取接口数据编码问题

需求比较简单&#xff0c;就是获取接口数据并返回。但是在用的过程中发现编码问题。接口返回的数据编码为UTF-8&#xff0c;希望显示的数据也是UTF-8&#xff0c;问题出在从输入流中读取数据的过程中。下面是几个实例程序。1、不管编码&#xff0c;直接写public static String …

opencv学习笔记[9]:Opencv的基本数据类型和矩阵结构

一.基本数据类型&#xff1a; 1.CvPoint 图像中的点 Opevcv提供的数据类型中最简单的就是CvPoint. typedef struct CvPoint { int x; int y; } CvPoint CvPoint包含int x 和int y两个数据成员,它的变体有CvPoint2D32f 和 CvPoint3D32f. CvPoint2D32f包含float x , float y两个…

LeetCode MySQL 614. 二级关注者

文章目录1. 题目2. 解题1. 题目 在 facebook 中&#xff0c;表 follow 会有 2 个字段&#xff1a; followee, follower &#xff0c;分别表示被关注者和关注者。 请写一个 sql 查询语句&#xff0c;对每一个关注者&#xff0c;查询关注他的关注者的数目。 比方说&#xff1a…

PHP安全最大化

PHP安全最大化 php中退出时清除session的问题 今天在做php项目的时候,需要增加安全退出的功能,也就是要求用户点"安全退出"时,执行清除session操作,并转到登录页.没想到在这个地方也小"卡"了一下. 出现的问题是当我点"安全退出"后转到登录…

java中字母用什么单词赋值_Java初学

Java-SUN语言平台J2SE(桌面) ,J2ME(移动被安卓所取代),J2EE(企业主要用于web)1.跨平台(操作系统)原理&#xff1a;在任意操作系统上运行&#xff0c;一次编写到处运行。依赖JVM(Java Virtual Machine)(不同系统Windows&#xff0c;Linux&#xff0c;mac有自己对应的JVM)2. JRE和…

POJ-3590 The shuffle Problem 置换+DP | DFS

题目链接&#xff1a;http://poj.org/problem?id3590 自己暴力给水过去了&#xff0c;不过效率有点低。题目要求的就是给一个数n&#xff0c;要你求出一种方案&#xff0c;一些和为n的数的最小公倍数最大。题目数据量不大&#xff0c;容易想到用暴力的办法求出所用情况&#x…

LeetCode MySQL 1454. 活跃用户(连续dense_rank排名函数)

文章目录1. 题目2. 解题1. 题目 表 Accounts: ------------------------ | Column Name | Type | ------------------------ | id | int | | name | varchar | ------------------------ id 是该表主键. 该表包含账户 id 和账户的用户名.表 Log…