1 package varycode;
2 class Grandparent
3 {
4 public Grandparent()
5 {
6
7 System.out.println("GrandParent Created.");
8
9 }
10
11
12 public Grandparent(String string)
13 {
14
15 System.out.println("GrandParent Created.String:" + string);
16
17 }
18
19 }
20
21
22
23 class Parent extends Grandparent
24 {
25
26
27 public Parent()
28 {
29
30 //super("Hello.Grandparent.");
31
32 System.out.println("Parent Created");
33
34 // super("Hello.Grandparent.");
35
36 }
37
38 }
39
40
41
42 class Child extends Parent
43 {
44
45
46 public Child()
47 {
48
49 System.out.println("Child Created");
50
51 }
52
53 }
54
55
56
57 public class TestInherits
58 {
59
60
61 public static void main(String args[])
62 {
63
64 Child c = new Child();
65
66 }
67
68
结论:在子类中调用super()方法,必须把调用语句放在子类构造的第一句,构造函数是实现初始化功能的,从子类一定要开始向父类实现构造方法。
二、
1 package varycode;
2 public class ExplorationJDKSource {
3
4 /**
5 * @param args
6 */
7 public static void main(String[] args) {
8 System.out.println(new A());
9 }
10
11 }
12
13 class A{}
默认调用super类的hash值
好看请赞,养成习惯 :) ,作者:靠谱杨
关于笔者:我可能不是天才,但我会努力成为人才。
更多日常分享尽在我的VX公众号:小杨的挨踢IT生活