(1)
示例:
(1)/testJavaBasic/src/com/test/Parent.java
package com.test; public class Parent { protected static String attrStatic = "父类的初始化------运行静态赋值语句"; public Parent(){ System.out.println(" 1.2父类的构造函数"); } static{ System.out.println(attrStatic); System.out.println("父类的初始化------运行静态代码块"); } { System.out.println(" 1.1父类的普通代码块"); } }
(2)/testJavaBasic/src/com/test/Child.java
package com.test; public class Child extends Parent{ private static String attrStatic = "子类的初始化------运行静态赋值语句"; public Child(){ System.out.println(" 2.2子类的构造函数"); } static{ System.out.println(attrStatic); System.out.println("子类的初始化------运行静态代码块"); } { System.out.println(" 2.1子类的普通代码块"); } public static void main(String[] args){ System.out.println("-----子类实例化开始-----"); Child t = new Child(); System.out.println("-----子类实例化结束-----"); System.out.println("获取子类的父类 "+t.getClass().getSuperclass()); } }
运行结果是:
父类的初始化------运行静态赋值语句
父类的初始化------运行静态代码块
子类的初始化------运行静态赋值语句
子类的初始化------运行静态代码块
-----子类实例化开始-----
1.1父类的普通代码块
1.2父类的构造函数
2.1子类的普通代码块
2.2子类的构造函数
-----子类实例化结束-----
获取子类的父类 class com.test.Parent