类初始化与实例化过程
2019-08-16 10:07:07来源:博客园 阅读 ()
类初始化与实例化过程
定义接口Person
package com.test;
public interface person {
int test();
}
定义父类Father
package com.test;
public class Father implements person{
private int i = test();
private static int j = cool();
static{
System.out.println("Father静态代码块1");
}
Father(){
System.out.println("Father无参构造方法...");
}
Father(String aa){
System.out.println("Father带参构造方法...");
}
static{
System.out.println("Father静态代码块2");
}
{
System.out.println("Father普通代码块1");
}
private static int cool() {
System.out.println("Father静态赋值方法cool()");
return 0;
}
@Override
public int test() {
System.out.println("Father普通赋值方法test()");
return 0;
}
}
定义子类Son
package com.test;
public class Son extends Father {
{
System.out.println("Son普通代码块1");
}
private int i = test();
static{
System.out.println("Son静态代码块1");
}
private static int j = cool();
{
System.out.println("Son普通代码块2");
}
public Son(String aa) {
System.out.println("Son带参构造方法");
}
public Son() {
System.out.println("Son无参构造方法");
}
static {
System.out.println("Son静态代码块2");
}
@Override
public int test(){
System.out.println("Son普通赋值 方法test()重写");
return 1;
}
public static int cool() {
System.out.println("Son静态赋值 方法cool()");
return 1;
}
public static void main(String[] args) {
Son s1 = new Son();
System.out.println("===========================================");
Son s2 = new Son("aa");
System.out.println("===========================================");
Father s3 = new Son("bb");
}
}
执行子类main方法,结果
Father静态赋值方法cool()
Father静态代码块1
Father静态代码块2
Son静态代码块1
Son静态赋值 方法cool()
Son静态代码块2
Son普通赋值 方法test()重写
Father普通代码块1
Father无参构造方法...
Son普通代码块1
Son普通赋值 方法test()重写
Son普通代码块2
Son无参构造方法
===========================================
Son普通赋值 方法test()重写
Father普通代码块1
Father无参构造方法...
Son普通代码块1
Son普通赋值 方法test()重写
Son普通代码块2
Son带参构造方法
===========================================
Son普通赋值 方法test()重写
Father普通代码块1
Father无参构造方法...
Son普通代码块1
Son普通赋值 方法test()重写
Son普通代码块2
Son带参构造方法
类初始化过程
类实例化的时候,首先要加载并初始化目标类,初始化过程在程序运行期间只在第一次构建对象时执行一次。
初始化过程加载的是该类所有的static 修饰的 变量、方法、代码块,其执行顺序按照在代码中出现及调用的先后顺序执行。
类实例化过程
类实例化过程在每次构建对象时候都会执行。
实例化过程加载的是该类的所有非static修饰的 变量、代码块,以及它们在加载时候涉及到调用的其它方法,它们按照实例化时在代码中调用的先后顺序执行。
原文链接:https://www.cnblogs.com/jiujianxian/p/11158638.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:吃个快餐都能学到串行、并行、并发
下一篇:计算机网络的OSI七层模型
- Mybaties简单实例测试及注意问题 2020-06-07
- 用斗地主的实例学会使用java Collections工具类 2020-06-05
- 数据结构:用实例分析ArrayList与LinkedList的读写性能 2020-06-04
- Docker容器启动时初始化Mysql数据库 2020-05-27
- 针对kafka_2.13版本测试过程中的一些坑 2020-05-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash