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:
OverridingOverriding 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