fork download
  1. public class Main {
  2. private static class PrintOnCreate {
  3. public PrintOnCreate(String message) {
  4. System.out.println(message);
  5. }
  6. }
  7.  
  8. private static class BaseClass {
  9. private PrintOnCreate member =
  10. new PrintOnCreate("BaseClass: member initialization");
  11.  
  12. static {
  13. System.out.println("BaseClass: static initialization");
  14. }
  15.  
  16. public BaseClass() {
  17. System.out.println("BaseClass: constructor");
  18. memberCalledFromConstructor();
  19. }
  20.  
  21. public void memberCalledFromConstructor() {
  22. System.out.println("BaseClass: member called from constructor");
  23. }
  24. }
  25.  
  26. private static class DerivedClass extends BaseClass {
  27. private PrintOnCreate member =
  28. new PrintOnCreate("DerivedClass: member initialization");
  29.  
  30. static {
  31. System.out.println("DerivedClass: static initialization");
  32. }
  33.  
  34. public DerivedClass() {
  35. System.out.println("DerivedClass: constructor");
  36. }
  37.  
  38. @Override
  39. public void memberCalledFromConstructor() {
  40. System.out.println("DerivedClass: member called from constructor");
  41. }
  42. }
  43.  
  44.  
  45. public static void main (String[] args) {
  46. BaseClass obj = new DerivedClass();
  47. }
  48. }
Success #stdin #stdout 0.09s 320320KB
stdin
Standard input is empty
stdout
BaseClass: static initialization
DerivedClass: static initialization
BaseClass: member initialization
BaseClass: constructor
DerivedClass: member called from constructor
DerivedClass: member initialization
DerivedClass: constructor