java构造方法和实例化,10. JavaSE-子类实例化过程 构造方法间调用

子类的实例化过程:

子类中所有的构造函数默认都会访问父类中空参数的构造函数。

class Parent

{

Parent(){

System.out.println("parent class run");

}

}

class Children extends Parent

{

Children(){

//super();//调用的就是父类空参数的构造函数

System.out.println("children class run");

//return;

/*说明:此处被注释掉的super和return都是默认就有的语句。*/

}

}

class  DemoChildren

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

为什么子类实例化的时候要访问父类构造函数?

因为子类继承父类,获取到了父类中内容(属性),所以在使用父类内容之前,要先看父类是如

何对自己的内容进行初始化的。所以子类在构造对象时,必须访问父类中的构造函数。为了完成

这个必须得动作,就在子类的构造函数中加入super()语句。如果父类中没有定义空参数的构造函

数,那么子类的构造函数必须用super明确调用父类中的哪个构造函数。同时子类构造函数中如果

使用this调用了本类构造函数时,那么super就没有了,因为super和this都只能定义在第一行,所以

只能有一个,但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造方法。

注意:super语句必须要定义在子类构造函数的第一行,因为父类的初始化动作要先完成。

Java中,所有的类都是Object的子类。Object是最顶层的类,也就是Java中的God。

一个对象的实例化过程:

1. JVM读取指定路径下的.class文件,并加载进内存,并会先加载父类(如果有直接父类的情况下)

2. 在堆内存中开辟空间,分配地址

3. 并在对象空间中,对对象中的属性进行默认初始化

4. 调用对应的构造函数进行初始化

5. 在构造函数中,第一行会先调用父类中的构造函数进行初始化

6. 父类初始化完毕后,在对子类的属性进行显示初始化

7. 在进行子类构造函数的特定初始化

8. 初始化完毕后,将地址赋值给引用变量

注意:通过super初始化父类内容时,子类的成员变量并未显式初始化,等super()父类初始化完

毕后,才进行子类的成员变量显示初始化。

构造函数之间互相调用:

类中构造函数之间可以相互调用。

class Parent

{

Parent(){

System.out.println("parent class run");

}

}

class Children extends Parent

{

Children(){

this(20);

System.out.println("children class run");

}

Children(int age){

System.out.println("This boy age is "+age);

}

}

class  DemoChildren

{

public static void main(String[] args)

{

new Children();

// System.out.println("Hello World!");

}

}

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

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

相关文章

JavaSE简单实现多线程聊天

1.1 主程序入口 在主程序入口处,通过设置MyWindow的第一个参数,如果为true则为服务器,如果为false,则为客户端,当然也可以设置第二个参数,区分客户端和服务器的窗口标题。 public class JavaMain {public s…

matlab将数据输出到excel中,matlab将数据保存为excel表格-怎样将MATLAB中的数据输出到excel中...

怎样将MATLAB中的数据输出到excel中?xlswrite()函数可以将matlab中数据保存到excel中,请面例子:>> data magic(5) % 示例数据data 17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 …

一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)

精确解为:U(x,t)e^(xt);用紧差分格式:此种方法精度为o(h1^2h2^4),无条件差分稳定;一:用追赶法解线性方程组(还可以用迭代法解)Matlab程序为:function [u p e x t]JCHGS(h1,h2,m,n)%紧差分格式解一维抛物线型偏微分方程…

Windows系统环境下Solr之Java实战(三)使用solrJ管理索引库

https://www.cnblogs.com/zhuxiaojie/p/5764680.html https://www.cnblogs.com/xieyupeng/p/9317158.html转载于:https://www.cnblogs.com/cnki/p/6783264.html

macos php无法访问,Mac上,Apache启动正常,却无法访问localhost和127.0.0.1

mac系统,之前一直好好的,今天突然localhost以及127就突然打不开了。显示拒绝访问。各种方法都试过了,不是端口占用, 不是日志文件缺失,任何情况都不是。想了想,之前有升级过PHP从5升级到了7,于是…

内部类(innerclasses)

一般情况下,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义为内部类。 内部类的作用: 1.内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。 2.内部类可以直接访问外部…

c js php比较字符串,Php 比较字符串相像度

Php 比较字符串相似度除了利用cookies、IP限制等技术外,我们可以利用PHP自身带的similar_text函数来判断用户发帖内容的相似度。?????similar_text()?函数计算两个字符串的匹配字符的数目,也可以计算两个字符串的相似度(以百分比计)。????语法…

非线性时延系统matlab框图,非线性主-从时延系统的时滞相关有限时间同步控制方法与流程...

本发明属于涉及非线性主-从时延系统控制技术领域,具体涉及一种非线性主-从时延系统的时滞相关有限时间同步控制方法。背景技术:近年来融合了控制理论、计算机技术以及网络通信技术的主-从时延机器人系统吸引了大量研究学者的关注。目前,主-从…

python 爬虫002-http与urllib2

urllib2 GET https://www.oschina.net/home/login #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import sys type sys.getfilesystemencoding()if __name__ __main__:# 设置Request的url信息和头部信息url "https://www.oschina.net/home/login&q…

浅说 Rewrite规则简介

1.Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块&a…

matlab 二进制乘法,xor(乘法英语单词)

For a 1 To 4 For b 1 To 4 For c 1 To 4 For d 1 To 4 If (a 1 Xor b 2) .xor 是异或运算两个整数进行XOR运算,是怎样的算法?XOR为异或运算,对于布尔型的运算,当2者都为ture或者false时,则返回false&#xff0c…

php聊天功能逻辑原理,@xxx提及用户,这种功能的实现原理是怎样的?

122014-12-13 22:05:54 08:00 1在牛客网 http://www.nowcoder.com 用户在我们网站提交的评论,我们会进行敏感词过滤,其算法是基于有限状态机DFA过滤的。 我觉得可以用敏感词过滤的方法来查找的用户ID。 (用户ID就是好多敏感词), 具体的代码…

strcpy、memcpy和memset的区别

strcpy 原型&#xff1a;extern char *strcpy(char *dest,char *src); 用法&#xff1a;#include <string.h> 功能&#xff1a;把src所指由NULL结束的字符串复制到dest所指的数组中。 说明&#xff1a;src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的…

php cli和fastcgi,php的几种运行模式CLI、CGI、FastCGI、mod_php

1、CLI:就是命令行&#xff0c;例如可以在控制台或者是shell中键入命令:php -f index.php然后获取输出2、CGI:以下是不同的说法与理解公共网关接口”(Common Gateway Interface)&#xff0c;HTTP服务器 与你的或其它机器上的程序 进行 “交谈”的一种工具 &#xff0c;其程序 须…

自学前端,你要的学习资料到了~~~~~~

你要的学习资料到了~~~~~~ 你还在找一个纯技术交流的地方嘛?你还在找一个每天更新资料的群吗&#xff1f;现在加裙617986737&#xff0c;无论是小白还是大神&#xff0c;可以尽情的讨论。 加裙条件&#xff1a; 1&#xff1a;保证自己常在线&#xff0c;一直沉默潜水的人不许加…

html文档php 取mac地址_cpu序列号_硬盘序列号,用vbs脚本获取网卡MAC,CPUID,硬盘序列号的实现代码...

这里先给大家分享一个分配静态ip地址的代码 Assign a Static IP AddressstrComputer "."Set objWMIService GetObject("winmgmts:" _& "{impersonationLevelimpersonate}!\\" & strComputer & "\root\cimv2")Set colNet…

T7-Dropout 解决 overfitting 过拟合

Dropout 解决 overfitting 相对于过拟合&#xff08;overfitting&#xff0c;或称&#xff1a;过度学习&#xff09;是指&#xff0c;使用过多参数&#xff0c;以致太适应训练数据而非一般情况&#xff1b;另一种常见的现象是使用太少参数&#xff0c;以致于不适应当前的训练数…

PHP伪造来源HTTP,伪造来源采集http.php

伪造来源采集.php"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","safari 5.1 – Windows">"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gec…

从零开始构建一个的asp.net Core 项目(一)

最近突发奇想&#xff0c;想从零开始构建一个Core的MVC项目&#xff0c;于是开始了构建过程。 首先我们添加一个空的CORE下的MVC项目&#xff0c;创建完成之后我们运行一下&#xff08;Ctrl F5&#xff09;。我们会在页面上看到“Hello World!”。 既然是从零开始构建的项目&am…

oracle sal01,oracle中 all any in的用法

Oracle的嵌套子查询可以使用Some,Any和All对子查询中返回的多行结果进行处理。Some表示满足其中一个的含义&#xff0c;是用or串起来的比较从句。例如&#xff1a;SELECT * FROM emp WHERE empno hmz OR dept 10Any也表示满足其中一个的含义&#xff0c;也是用or串起来的比较…