Java中new一个子类对象的同时并不会自动创建一个父类对象
- 首先重申一个概念:子类会继承父类所有非私有成员变量和方法,包括父类的构造方法
- 当创建一个子类对象时,首先开辟内存,然后调用类的构造函数,这里的构造函数由两部分组成,一部分是从父类继承而来的父类的构造方法,一部 分是子类自己的构造方法,先用从父类继承而来的构造方法初始化从父类继承而来的成员变量,然后调用子类自己的构造方法初始化子类想初始化的变量(可以是子类本身定义的成员变量,也可以是从父类继承而来的成员变量)。
- super和this本质上是同一个对象,只是为了明确调用对它们的功能进行率限制和分工,this调用的是自己的方法成员和从父类继承而来但未被重写的方法成员,而super则是用来调用从父类继承而来的方法成员。
可以看近似为下面这样:
假如父类是这样定义的:
public class A {
public String name;
public int age;
private int acount;
public A() {
super();
}
public A(String name, int age, int acount) {
super();
this.name = name;
this.age = age;
this.acount = acount;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getAcount() {
return acount;
}
public void setAcount(int acount) {
this.acount = acount;
}
public void fun() {
};
}
子类是下面这样定义的:
class B extends A{
private int age;
private String name;
public B() {
super();
}
public B(String name, int age, int acount) {
super(name, age, acount);
}
}
那么其实子类完整的定义是下面这样的:
class B extends A{
public String name;
public int age;
private int acount;
public A() {
super();
}
public A(String name, int age, int acount) {
super();
this.name = name;
this.age = age;
this.acount = acount;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getAcount() {
return acount;
}
public void setAcount(int acount) {
this.acount = acount;
}
public void fun() {
};
private int age;
private String name;
public B() {
super();
}
public B(String name, int age, int acount) {
super(name, age, acount);
}
}
可是如果子类的本质真的是像上面那样的话,那么子类就同时存在了age和name两个同名的变量声明了,这又不符合java语法了,这大概就是继承的时候做了某些标记处理吧
Java中new一个子类对象的同时并不会自动创建一个父类对象的更多相关文章
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- 通过node指令自动创建一个package.json文件,并封装发布使用
通过node指令自动创建一个package.json文件,并封装发布使用:https://blog.csdn.net/scu_cindy/article/details/78208268
- 聊聊高并发(十四)理解Java中的管程,条件队列,Condition以及实现一个堵塞队列
这篇里面有一些主要的概念,理解概念是件有意义的事情,仅仅有理解概念才干在面对详细问题的时候找到正确的解决思路.先看一下管程的概念 第一次在书上看到管程这个中文名称认为非常迷糊,管程究竟是个什么东东,于 ...
- Golang bash脚本自动创建一个go工程
原作者的代码里面,存在智能引号问题,所以他的代码并不能正常运行: 这个是我微调后的版本. 代码如下: #!/bin/bash #————————————– # Module : mk_go_pro.s ...
- java中方法的参数传递机制_一个对象被当作参数传递到一个方法后
一个例子: 在Boy.java类中 在Girl.java类中 在marry方法中的this指的是这个方法所属的对象的引用,在这里指的是girl这个对象 在BoyGirlTest.java测试 ...
- Java中Array.sort()的几种用法(需要初始化要排序的对象)
====================================================== 1.Arrays.sort(int[] a) 这种形式是对一个数组的所有元素进行排序,并且 ...
- Java之面向对象概述,类,构造方法,static,主方法,对象
一.面向对象概述 面向过程 "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响 ...
- Java中如何遍历Map对象的4种方法
在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...
- 转!! Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
随机推荐
- Anaconda 包管理与环境管理
包管理命令 conda命令 安装包 conda install 包名称 卸载包 conda remove 包名称 更新包 conda update 包名称 模糊查询 conda search 包名称 ...
- 自动驾驶定位算法-直方图滤波(Histogram Filter)定位
1.直方图滤波(Histogram Filter)的算法思想 直方图滤波的算法思想在于:它把整个状态空间dom(x(t))切分为互不相交的部分\(b_1.b_2....,b_{n-1}\),使得: 然 ...
- Git常用命令 - 随时更新
1. 配置用户信息 git config --global user.name <name> git config --global user.email <email_addres ...
- visual studio2010编译过程中出现COFF文件损坏的原因和方法总结
一.现象描述 笔者在用visual studio2010进行控制台程序进行程序编译时候,经常会遇到代码代码没有语法错误,但是编译不通过的现象.系统报错为 LINK : fatal error LNK1 ...
- docker - 如何清理硬盘中无关占用
背景 在使用docker进行容器化管理后会发现本次硬盘文件占用量在不断上升,并且即使是删除掉容器或者镜像也并不能释放掉对应的硬盘空间.本文将提供对应的docker命令用于真正释放掉该部分应被删除释放的 ...
- 自用浏览器的 User-agent 表
浏览器版本号见请求. 浏览器 User-agent Internet Explorer Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11. ...
- job无法自动运行基于ABP后台服务 - 后台作业和后台工人
原因: 后台作业和后台工人仅在你的应用程序运行的时候才工作.如果web应用长时间没有被请求执行,Asp.Net应用默认是关闭的 解决方案: 应用程序池(Application Pool),Proces ...
- kafka消费服务调优
1.消费服务速度跟不上 2.top -H 观察是哪个线程最忙 3.多次使用jstack,看看最忙的那个线程在做什么
- Pikachu-Unsafe Fileupload(不安全的文件上传)
不安全的文件上传漏洞概述 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像.上传附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型.后缀名.大小等等 ...
- java学习笔记之IO编程—字节流和字符流
1. 流的基本概念 在java.io包里面File类是唯一一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操 ...