java 继承关系中-执行顺序测试

来源:互联网 发布:数据分析相关岗位 编辑:程序博客网 时间:2024/05/20 13:11
父类:
[java] view plain copy
  1. package com.blm.java;  
  2. public class Ainimal {  
  3.     static {  
  4.         System.out.println("这是父类的静态代码块");  
  5.     }  
  6.     private String name;  
  7.     public Ainimal() {  
  8.         super();  
  9.         System.out.println("这是父类的无参构造");  
  10.     }  
  11.     public Ainimal(String name) {  
  12.         super();  
  13.         this.name = name;  
  14.         System.out.println("这是父类的有参构造");  
  15.     }  
  16.     public void eat() {  
  17.         System.out.println("这是父类的普通方法");  
  18.     }  
  19. }  

子类:

[java] view plain copy
  1. package com.blm.java;  
  2. public class Cat extends Ainimal {  
  3.     static {  
  4.         System.out.println("这是子类静态代码块");  
  5.     }  
  6.       
  7.     private String color;  
  8.   
  9.     public Cat() {  
  10.         super();  
  11.         System.out.println("这是子类无参构造");  
  12.     }  
  13.   
  14.     public Cat(String color) {  
  15.         super();  
  16.         this.color = color;  
  17.         System.out.println("这是子类有参构造");  
  18.     }  
  19.   
  20.     @Override  
  21.     public void eat() {  
  22.         // TODO Auto-generated method stub  
  23.         super.eat();  
  24.         System.out.println("这是子类复写的父类方法");  
  25.     }  
  26.     public void run() {  
  27.         System.out.println("这是子类的普通方法");  
  28.     }  
  29. }  
测试类:1.创建子类实体

[java] view plain copy
  1. package com.blm.java;  
  2. public class Test {  
  3.     public static void main(String[] args) {  
  4.         new Cat();  
  5.     }  
  6. }  

result:

这是父类的静态代码块
这是子类静态代码块
这是父类的无参构造
这是子类无参构造

测试类:2.创建子类实体(带参)

[java] view plain copy
  1. package com.blm.java;  
  2. public class Test {  
  3.     public static void main(String[] args) {  
  4.         new Cat("hei");  
  5.     }  
  6. }  
result:

这是父类的静态代码块
这是子类静态代码块
这是父类的无参构造
这是子类有参构造

测试类:3.子类对象调用复写父类的方法

[java] view plain copy
  1. package com.blm.java;  
  2. public class Test {  
  3.     public static void main(String[] args) {  
  4.         new Cat().eat();  
  5.     }  
  6. }  
这是父类的静态代码块
这是子类静态代码块
这是父类的无参构造
这是子类无参构造
这是父类的普通方法
这是子类复写的父类方法

测试类:3.子类对象调用自己的方法

[java] view plain copy
  1. package com.blm.java;  
  2. public class Test {  
  3.     public static void main(String[] args) {  
  4.         new Cat().run();  
  5.     }  
  6. }  
result:

这是父类的静态代码块
这是子类静态代码块
这是父类的无参构造
这是子类无参构造
这是子类的普通方法

0 0
原创粉丝点击