Method hiding xảy ra khi static method của subclass có cùng signature với static method của parent — chúng không override nhau mà che giấu. Method được gọi phụ thuộc vào kiểu reference (compile-time), không phải kiểu object thực. Ngược lại, method overriding với instance method: JVM gọi phiên bản của object thực (runtime).
Ví dụ: gọi staticMethod() qua reference kiểu parent sẽ luôn gọi phiên bản của parent dù đang giữ child object.