Почему статический метод родительского класса вызывается, когда подкласс уже переопределил его?

Меня смущает поведение статического метода, когда он переопределяется в подклассе.

Ниже приведен код:

public class SuperClass {

    public static void staticMethod() {
        System.out.println("SuperClass: inside staticMethod");
    }
}

public class SubClass extends SuperClass {

//overriding the static method
    public static void staticMethod() {
        System.out.println("SubClass: inside staticMethod");
    }
}


public class CheckClass {

    public static void main(String[] args) {

        SuperClass superClassWithSuperCons = new SuperClass();
        SuperClass superClassWithSubCons = new SubClass();
        SubClass subClassWithSubCons = new SubClass();

        superClassWithSuperCons.staticMethod();
        superClassWithSubCons.staticMethod();
        subClassWithSubCons.staticMethod();

    }
}


Below is the output which we are getting :

    1) SuperClass: inside staticMethod
    2) SuperClass: inside staticMethod
    3) SubClass: inside staticMethod

Почему статический метод суперкласса вызывается здесь во втором случае?

Если метод не является статическим, то в соответствии с полиморфизмом метод подкласса вызывается, когда объект подкласса передается во время выполнения.

Ответы на вопрос(4)

Ваш ответ на вопрос