继承,是扩展父类的作用范围,子类不仅拥有父类现有的功能,还能扩展出一些特别的功能
以下分别在父类和子类中定义了 无参构造器、初始化块、静态静态初始化块
在实例化子类对象的时候,存在以下执行顺序:
1. 父类静态初始化块;
2. 子类静态初始化块;
3. 父类初始化块;
4. 父类构造器;
5. 子类初始化块;
6. 子类构造器(在实例化对象的时候使用的构造器,并不是一定使用无参构造器);
1 public class Inherit extends InheritSuper {
2 public Inherit() {
3 System.out.println("Hello Inherit!");
4 }
5
6 private int a;
7 private String b;
8
9 public Inherit(int a, String b) {
10 this.a = a;
11 this.b = b;
12 System.out.println("with parameter Hello Inherit!");
13 }
14
15 {
16 System.out.println("I'm class Inherit!");
17 }
18
19 static {
20 System.out.println("static Inherit!");
21 }
22
23 public static void main(String[] args) {
24 new Inherit(1, "Allen");
25 }
26 }
27
28 class InheritSuper {
29 public InheritSuper() {
30 System.out.println("Hello InheritSuper!");
31 }
32
33 public InheritSuper(int aS, String bS) {
34 System.out.println("with parameter Hello InheritSuper!");
35 }
36
37 {
38 System.out.println("I'm class InheritSuper!");
39 }
40
41 static {
42 System.out.println("static InheritSuper!");
43 }
44 }
运行结果:
static InheritSuper!
static Inherit!
I'm class InheritSuper!
Hello InheritSuper!
I'm class Inherit!
with parameter Hello Inherit!