Sự khác nhau giữa overriding
và shadowing
trong C# là gì?
Sự khác nhau giữa overriding
và shadowing
trong C# là gì?
Trong C#, overriding
và shadowing
là hai kỹ thuật được sử dụng để tùy chỉnh hoặc thay đổi hành vi của một phương thức hoặc thuộc tính trong lớp dẫn xuất so với lớp cơ sở của nó. Dù có mục đích tương tự nhưng chúng được sử dụng trong các trường hợp và cách thức khác nhau:
Overriding
Overriding
là kỹ thuật cho phép một lớp dẫn xuất thay đổi triển khai (implementation) của một phương thức ảo (virtual) hoặc trừu tượng (abstract) được kế thừa từ lớp cơ sở.override
một phương thức, bạn cần đánh dấu phương thức đó trong lớp cơ sở với từ khóa virtual
hoặc abstract
, và sử dụng từ khóa override
khi triển khai lại phương thức đó trong lớp dẫn xuất.Overriding
được sử dụng khi bạn muốn thay đổi hoặc mở rộng hành vi của phương thức được kế thừa, đồng thời vẫn giữ được tính đa hình (polymorphism) trong thời gian chạy (runtime).Shadowing
(hoặc Hiding
)Shadowing
là kỹ thuật cho phép một lớp dẫn xuất định nghĩa lại một phương thức hoặc thuộc tính có cùng tên với một phương thức hoặc thuộc tính trong lớp cơ sở, mà không can thiệp vào triển khai của lớp cơ sở.shadow
một phương thức hoặc thuộc...middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào