Sealed C# là gì

Từ khóa sealed [niêm phong] trong C#

Trong bài viết này chúng ta sẽ cùng tìm hiểu về từ khóa sealed và ý nghĩa của nó trong lập trình C#.

Nội dung chính:
  1. Từ khóa sealed là gì?
  2. Một số đặc điểm của từ khóa sealed
  3. Sử dụng từ khóa sealed khi nào?
  4. Cách sử dụng từ khóa sealed
    • #1. Đối với class
    • #2. Đối với method
1. Từ khóa sealed là gì?
1. Từ khóa sealed là gì?

sealed có nghĩa thuần Việt là niêm phong. Trong C#, cho phép bạn dùng từ khóa sealed để khai báo cho một lớp hoặc một phương thức. Đúng theo ý nghĩa của nó, khi bạn sử dụng từ khóa này cho lớp thì lớp đó không được kế thừa, còn khi sử dụng cho phương thức thì phương thức đó không được phép override.

2. Một số đặc điểm của từ khóa sealed
2. Một số đặc điểm của từ khóa sealed

sealed class có thể kế thừa một lớp khác, nhưng không một lớp nào được kế thừa từ nó. Do đó, khi một lớp đang được lớp khác kế thừa thì trong lớp đó không được sử dụng từ khóa sealed để khai báo cho phương thức lớp đó không được sử dụng từ khóa sealed để khai báo cho lớp.

Trong sealed class các phương thức không được sử dụng phạm vi truy cập là protected, và cũng không có phương thức virtual, vì hai từ khóa này được dùng trong việc kế thừa.

sealed class không thể là lớp trừu tượng abstract class, vì trong abstract class thì có phương thức abstract bắt buộc phải kế thừa ở lớp con.

sealed class giống như final class trong java.

sealed method không được phép override, nên trong định nghĩa của sealed method nó luôn luôn đi kèm với từ khóa override.

Trong sealed class không nhất thiết phải có sealed method.

3. Sử dụng từ khóa sealed khi nào?
3. Sử dụng từ khóa sealed khi nào?

Sử dụng khi bạn phát triển một thư viện library nào đấy, trong đó có một lớp đã đầy đủ những chức năng cần thiết cho một nghiệp vụ nhất định rồi và bạn không muốn lớp này được dẫn xuất, kế thừa, mở rộng bởi các lập trình viên khác nữa.

4. Cách sử dụng từ khóa sealed
4. Cách sử dụng từ khóa sealed

#1. Đối với lớp
Cú pháp:

[] sealed class { ... }

Trong đó: quyen_truy_cap : là public hay private, protected, Có thể có hoặc không.

Minh họa:

sealed class A { public void SomeMethod[] { ; } public void SomeOtherMethod[] { ; } }

#2. Đối với phương thức
Cú pháp:

sealed override [[]] { ... }

Trong đó:
quyen_truy_cap : là public hay private, protected,
danh_sach_tham_so : có thể có hoặc không.

Minh họa:

public class A { public virtual void SomeMethod[] { ; } public virtual void SomeOtherMethod[] { ; } } public class B : A // class B kế thừa class A { // Do not override this method any more public sealed override void SomeMethod[] { ; } public override void SomeOtherMethod[] { ; } } public class C : B // class C kế thừa class B { // You can't override SomeMethod, since it declared as "sealed" in the base class // public override void SomeMethod[] { ; } // But you can override SomeOtherMethod[] if you want public override void SomeOtherMethod[] { ; } }
Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!
4.1 7 votes
Article Rating

Video liên quan

Chủ Đề