Khác biệt giữa overriding và shadowing:
- Shadowing định nghĩa lại toàn bộ phương thức, overriding chỉ định nghĩa lại phần triển khai.
- Overriding truy cập lớp cơ sở qua đối tượng lớp con gọi phương thức ghi đè. Shadowing không truy cập phương thức lớp con.
- Shadowing = method hiding. Phương thức cha có sẵn cho con không dùng override. Con có phiên bản riêng.
- Overriding: định nghĩa hành vi đặc thù cho kiểu lớp con, lớp con triển khai phương thức cha theo yêu cầu.