Java类中继承与初始化
来源:互联网 发布:mac地址一样 修改 编辑:程序博客网 时间:2024/04/29 18:57
Java类中继承与初始化(包含static)
<span style="font-size:18px;">package cm.java.Practic7;class Insect {private int i = 9;protected int j;Insect() {System.out.println("i = " + i + ",j = " + j);j = 39;}private static int x1 = printInit("static Insect.x1 initialized");static int printInit(String s) {System.out.println(s);return 47;}}public class InitWithExtendP146 extends Insect {private int k = printInit("InitWithExtendP146.k initialized");public InitWithExtendP146() {System.out.println("k = " + k + ",j =" + j);}private static int x2 = printInit("static InitWithExtendP146.x2 initialized");public static void main(String[] args) {System.out.println("InitWithExtendP146 constructor");InitWithExtendP146 b = new InitWithExtendP146();}}</span>输出的结果:
<span style="font-size:18px;">static Insect.x1 initializedstatic InitWithExtendP146.x2 initializedInitWithExtendP146 constructori = 9,j = 0InitWithExtendP146.k initializedk = 47,j =39</span>
总结如下:
先statc的数据成员,再static的方法;
先基类的数据成员,构造函数,再自己的数据成员,构造函数。
过程如下:
1 首先:寻找InitWithExtendP146类中的mian函数,发现该类中static的数据成员
所以首先加载静态数据成员,然后发现该类是继承于Insect,
所以首先加载基类中的static数据成员
<span style="font-size:18px;">private static int x1 = printInit("static Insect.x1 initialized");</span>
输出:static Insect.x1 initialized
接着加载自己的数据成员
<span style="font-size:18px;">private static int x2 = printInit("static InitWithExtendP146.x2 initialized");</span>输出:static InitWithExtendP146.x2 initialized
2 静态函数:mian函数
<span style="font-size:18px;">System.out.println("InitWithExtendP146 constructor");</span>输出:InitWithExtendP146 constructor
然后:
<span style="font-size:18px;">InitWithExtendP146 b = new InitWithExtendP146();</span>这里,首先就是执行构造函数,首先基类的构造函数:
<span style="font-size:18px;">Insect() {System.out.println("i = " + i + ",j = " + j);j = 39;}</span>输出:i = 9,j = 0
接着自己的数据成员:
<span style="font-size:18px;">private int k = printInit("InitWithExtendP146.k initialized");</span>输出:InitWithExtendP146.k initialized
然后构造函数:
<span style="font-size:18px;">public InitWithExtendP146() {System.out.println("k = " + k + ",j =" + j);}</span>输出:k = 47,j =39
所以整个输出:
static Insect.x1 initialized
static InitWithExtendP146.x2 initialized
InitWithExtendP146 constructor
i = 9,j = 0
InitWithExtendP146.k initialized
k = 47,j =39
1 0
- Java类中继承与初始化
- Java中继承与初始化
- JAVA中继承与初始化顺序
- Java 继承与初始化
- Java继承与初始化
- Java继承与初始化
- JAVA--继承与初始化
- Java中类继承的初始化顺序
- java继承中类的初始化过程
- 继承类与初始化
- 再次认识Java中构造器的初始化与继承
- java中继承初始化顺序
- 继承关系中子类与父类加载与初始化
- Java中类与继承
- Swift中类的初始化器与继承
- Java中的类继承与构造方法初始化顺序
- java基础-类元素的初始化与继承多态
- 黑马程序员-java基础-继承中类的初始化顺序
- 我们为什么使用线程池
- github push 错误The requested URL returned error: 403 Forbidden while ..
- SQL 基础(一)
- 【FastDev4Android框架开发】Android MVP开发模式详解(十九)
- C# 命名规范
- Java类中继承与初始化
- SyntaxError: (unicode error) truncated \UXXXXXXXX escape
- GDB调试工具使用
- android中遇到问题总结
- ios-iPhone Objective-C EXC_BAD_ACCESS问题
- Xcode键盘快捷键,敲代码时狠有用!
- php preg_match中文 Compilation failed: character value in \x{...} sequence is too large at offset 7
- 【VB.NET】如何自动生成类头注释
- Android版本分布数据源