代码改变世界

动手动脑四

2018-11-03 16:03  一念永恒s  阅读(198)  评论(0编辑  收藏  举报

1.继承条件下的构造方法的调用

 1 package 动手动脑1;
 2 
 3 public class Child extends Parent{
 4     public Child() {
 5     
 6         System.out.println("Child Created");
 7 }
 8 
 9     }
10 package 动手动脑1;
11 
12 public class Parent extends Grandparent{
13     public Parent() {
14     
15     
16          
17 
18                 //super("Hello.Grandparent.");
19 
20                 System.out.println("Parent Created");
21         
22            // super("Hello.Grandparent.");
23 
24     }
25 
26     
27 }
28 package 动手动脑1;
29 public class Grandparent {
30     public Grandparent()
31      {
32 
33             System.out.println("GrandParent Created.");
34     
35 }
36 
37 
38     public Grandparent(String string) 
39     {
40 
41             System.out.println("GrandParent Created.String:" + string);
42     
43  }
44 
45 }
46 package 动手动脑1;
47 
48 public class TestInherits {
49 
50 
51     public static void main(String[] args) {
52         // TODO 自动生成的方法存根
53         Child c = new Child();
54         
55     }
56 
57 }

当父类构造函数在子类构造函数之前调用之前,在构造函数前加super先调用父类的构造函数,当父类在子类之后无法调用构造函数

2神奇的加号

 1 package 动手动脑1;
 2 
 3 public class Fruit {
 4 public  String  toString()
 5     {
 6         return "Fruit toString.";
 7     }
 8     public static void main(String[] args) {
 9         // TODO 自动生成的方法存根
10         Fruit f=new Fruit();
11         System.out.println("f="+f);
12         System.out.println("f="+f.toString());
13     }
14 
15 }

一个字符串和一个对象“相加”相当于调用这个方法

3探索技术的奥秘

 1 package 动手动脑1;
 2 
 3 public class ExplorationJDKSource {
 4     /**
 5      * @param args
 6      */
 7     
 8     public static void main(String[] args) {
 9         System.out.println(new A());
10     }
11 
12 
13 }
14 class A{}