Это потому, что статические методы не полиморфны.Более того, статический метод должен вызываться не объектом, а с использованием класса, то есть Main.method()
или SubMain.method()
.Когда вы звоните m.method()
java фактически вызывает Main.method()
, потому что m имеет тип Main.
Если вы хотите насладиться полиморфизмом, не используйте статические методы.