Bởi vì tôi có nghĩa là, có thể đánh dấu một phương pháp ảo trong C# là cuối cùng vì vậy không có loại nào khác xuất phát từ loại này, có thể ghi đè lên nó một lần nữa?Có thể hoàn thành một phương pháp ảo trong C# không?
Trả lời
Có: khi ghi đè phương thức bạn cũng có thể khai báo nó sealed
.
Câu trả lời hay. Một điểm làm rõ cho OP; chỉ những phần ghi đè của các phương thức ảo (bản thân chúng cũng là ảo) có thể được niêm phong; khai báo có 'virtual' cũng không thể được' niêm phong'. Nó dư thừa; từ khóa kín "undoes" một từ khóa ảo hoặc trừu tượng làm cho phương thức ảo trong lớp cơ sở. Phải có ít nhất một mức độ kế thừa giữa việc tạo phương thức ảo và niêm phong nó. – KeithS
Cảm ơn KeithS, bạn có thể đưa ra một ví dụ về mã này không? Tôi không nghĩ rằng tôi hiểu nó. –
về cơ bản, 'công khai ghi đè void MyMethod()' biên dịch. 'public virtual void void MyMethod()' không, bởi vì ở cùng cấp độ thừa kế, bạn đang đánh dấu phương thức là overridable và không overridable. Nó dư thừa; 'public void MyMethod()' sẽ tạo ra một phương thức không thể ghi đè. Đó là điểm tôi đang cố gắng thực hiện; mặc dù các phương thức ảo có thể được niêm phong, nhưng chúng thực sự phải ghi đè phương thức cơ sở ban đầu được đánh dấu là ảo. – KeithS
Bạn có thể sử dụng sealed.
- 1. Mocking phương pháp không ảo trong C#
- 2. Chúng ta có thể có một phương pháp tĩnh ảo không? (C++)
- 3. C++ phương pháp ảo trọng
- 4. Tôi có thể sử dụng phương pháp ghi đè phương pháp phi ảo không?
- 5. ghi đè phương pháp ảo C++
- 6. Các phương pháp không ảo trong Java
- 7. Có thể có Phương pháp bên trong Phương pháp không?
- 8. Java - Phương pháp ảo
- 9. Phương pháp trong C++
- 10. phương pháp phi ảo Overriding
- 11. Phương pháp ảo không được gọi là
- 12. Làm thế nào để quá tải một phương pháp ảo khác với phương pháp phi ảo?
- 13. Phương pháp trừu tượng có phải là ảo không?
- 14. Phương pháp mở rộng ảo?
- 15. Có thể ghi đè phương thức không phải ảo không?
- 16. Các thành viên ảo có được gọi qua phản xạ (trong hoàn cảnh bình thường) không?
- 17. C++ gọi phương thức hoàn toàn sai (ảo) của một đối tượng
- 18. Không ghi đè một phương pháp ảo không phải là const ẩn một quá tải const?
- 19. Phương pháp C# có thể trả về một phương thức không?
- 20. Cú pháp cho các thành viên ảo
- 21. C++ phương pháp mà có thể/không thể trở về một struct
- 22. phương pháp ảo Overriding khi instantiating một lớp
- 23. const và không có phương pháp const trong c + +?
- 24. Tự động hoàn thành với C++ (KHÔNG có Shell)
- 25. Phương pháp ràng buộc để phương pháp cơ bản trong thư viện bên ngoài không thể xử lý các phương pháp ảo mới "giữa"
- 26. Tạo một phương pháp tùy chỉnh với khối hoàn
- 27. Làm thế nào một phương pháp thành viên có thể xóa đối tượng?
- 28. Thành viên không thể mời không thể được sử dụng như một phương pháp?
- 29. Khung thực thể .Có phương pháp chaining
- 30. Có thể gọi một phương thức không thể chờ đợi bằng phương pháp không đồng bộ không?
Hết sức tò mò, trường hợp sử dụng của bạn là gì? Đây là một tính năng khá hiếm khi được sử dụng. Kịch bản bạn đã có nơi có ý nghĩa gì để phong ấn * phương pháp * nhưng không phải là * class *? –
@Eric: Thực ra tôi không có bất kỳ trường hợp sử dụng nào: O Nhưng chuyện gì đã xảy ra ở đây. Tôi đang sử dụng thư viện .NET của bên thứ ba chưa ra. Thư viện này có rất nhiều loại nơi họ chỉ có các nhà xây dựng nội bộ. Tôi muốn làm cho các loại của riêng tôi xuất phát từ những điều này, nhưng theo cách của nó, nó không thể bởi vì các nhà thầu phải được công khai. Tôi yêu cầu họ cho nó, và họ nói rằng phương pháp ảo có thể gây khó khăn để gỡ lỗi, lỗi khôn lanh, vì vậy họ không thể làm điều này. Tôi mơ hồ nhớ một cách để "hoàn thành"/con dấu các phương pháp ảo vì vậy đó là lý do tại sao tôi hỏi điều này, và nếu họ quan tâm, họ có thể sử dụng .. –
từ khóa kín để niêm phong các phương pháp ảo đó. Cũng nói với họ nếu thừa kế không dành cho thư viện của họ, thì các loại nên được niêm phong để thực hiện. Nhưng với những kiểu này có các hàm tạo bên trong, nó không thể thực sự sử dụng chúng. Bạn nghĩ sao? Bạn có nghĩ rằng mối quan tâm của họ đối với thừa kế và phương pháp ảo có hợp lệ không? –