Tôi tự hỏi nếu có cách nào để giới hạn những người có thể kế thừa từ một lớp học.Có cách nào để hạn chế ai có thể kế thừa một lớp hoặc giao diện không?
internal
: không cho phép lớp được thừa hưởng bên ngoài lắp rápsealed
: lớp không thể được thừa hưởng
Có một từ khoá hoặc cách chỉ cho phép các lớp học nhất định (giả sử từ nó chỉ không gian tên riêng) để kế thừa lớp đó?
Ngoài ra, tôi không muốn lớp đặc biệt này là chung chung. Mối quan tâm của tôi không phải là an ninh mà là thiết kế nói chung.
Ví dụ về những gì tôi muốn:
- lớp A.
- Class B kế thừa từ A
- Lớp C không thể kế thừa từ A
Làm cho nội bộ của lớp học không chỉ ngăn các lớp bên ngoài kế thừa mà còn từ việc sử dụng nó.Để ngăn chặn các lớp con bên ngoài, bạn cần các thủ thuật đặc biệt, chẳng hạn như các phương thức 'abstract trừu tượng' và không hoạt động trên các giao diện. – CodesInChaos
Bạn muốn giới hạn loại nào? Bạn có nhìn vào InheritanceDemand không? http://palisade.plynt.com/issues/2006Apr/link-demand/ –
Lưu ý rằng việc hạn chế không gian tên không có nhiều sự bảo vệ, vì một hội đồng giả mạo chỉ có thể nói 'namespace Awesome {public class Stolen: Secret { }} 'và bây giờ họ có thể sử dụng' Awesome.Stolen' để truy cập 'Awesome.Secret'. –