I find out correct solution but... someone could explain me why if I call (this.method1())
public void method2() {
           System.out.println("klasa A, metoda2");
           this.method1();
       }
and A.method1() is private then is called, otherside if A.method1() is publlic then C.method1() is called? I'm confused 🙃
public static class A {
        private void method1() {
            System.out.println("klasa A, metoda1");
        }

        public void method2() {
            System.out.println("klasa A, metoda2");
            this.method1();
        }
    }

    public static class B extends A {
        public void method1() {
            super.method2();
            System.out.println("klasa B, metoda1");
        }

        public void method2() {
            System.out.println("klasa B, metoda2");
        }
    }

    public static class C extends B {
        public void method1() {
            System.out.println("klasa C, metoda1");
        }

        public void method2() {
            System.out.println("klasa C, metoda2");
            super.method1();
        }
    }