fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. new Child();
  13. }
  14. }
  15.  
  16. /**
  17.  * This example demonstrates the order of class and object initialization.
  18.  * Class initialization:
  19.  * 1. static fields and class initializers in order of declaration.
  20.  * Object initialization:
  21.  * 1. parent constructor execution
  22.  * 2. object fields and instance initializers in order of declaration
  23.  * 3. rest of constructor
  24.  */
  25. class Parent {
  26. Parent() {
  27. System.out.println("I'm parent!");
  28. }
  29. }
  30.  
  31. class Child extends Parent {
  32. static Field staticField = new Field("I'm static field!");
  33.  
  34. Field field = new Field("I'm field!");
  35.  
  36. {
  37. System.out.println("I'm instance initializer");
  38. field = new Field("I'm field in instance initializer!");
  39. }
  40.  
  41. static {
  42. System.out.println("I'm class initializer");
  43. }
  44.  
  45. final static Field staticFinalField = new Field("I'm final static field!");
  46.  
  47. final Field finalField = new Field("I'm Final field");
  48.  
  49. public Child(){
  50. System.out.println("I'm child constructor!");
  51. }
  52.  
  53. public static void main(String[] args) {
  54. new Child();
  55. }
  56. }
  57.  
  58. class Field {
  59. public Field(String argument) {
  60. System.out.println(argument);
  61. }
  62. }
Success #stdin #stdout 0.04s 2184192KB
stdin
Standard input is empty
stdout
I'm static field!
I'm class initializer
I'm final static field!
I'm parent!
I'm field!
I'm instance initializer
I'm field in instance initializer!
I'm Final field
I'm child constructor!