I don't understand order command. In line 21 form Protected (the original source) I think the value of f1 form Class B send to Class A Because Class B call super(f1) (Line 30) So,f1 at Class A equal to 6(that true?) I debug ... LINE 17 this.f1 (has value equal 6) then LINE 18 initialize() call LINE 21 protected void initialize() But It look like LINE18 doesn't call initialize() method at LINE 22 ** After I changed LINE 21 form protected void initialize() to private void initialize() I will be call initialize() method at LINE 22 and show 6 on display . Why?
package com.codegym.task.task15.task1526;

/*
Debug, debug, and again debug

*/

public class Solution {
    public static void main(String[] args) {
        new B(6);
    }

    public static class A {
        private int f1 = 7;

        public A(int f1) {
            this.f1 = f1;
            initialize();
        }

        private void initialize() {
            System.out.println(f1);
        }
    }

    public static class B extends A {
        protected int f1 = 3;

        public B(int f1) {
            super(f1);
            this.f1 += f1;
            initialize();
        }

        protected void initialize() {
            System.out.println(f1);
        }
    }
}