Tôi hiểu rằng cả lớp trừu tượng lẫn giao diện đều không thể chứa một phương thức vừa là abstract and static vì các vấn đề mơ hồ, nhưng có cách giải quyết khác không?Java static static Workaround
Tôi muốn có lớp trừu tượng hoặc giao diện yêu cầu đưa vào phương thức tĩnh trong tất cả các lớp mở rộng/triển khai lớp/giao diện này. Có cách nào để làm điều này trong Java? Nếu không, đây có thể là rơm cuối cùng của tôi với Java ...
EDIT 1: Bối cảnh của vấn đề này là tôi có một loạt các lớp, gọi chúng là Stick, Ball và Toy bây giờ, có một bó các mục trong cơ sở dữ liệu. Tôi muốn tạo một siêu lớp/giao diện được gọi là Có thể tìm nạp được yêu cầu một phương thức tĩnh getFetchables()
trong mỗi lớp bên dưới nó. Lý do các phương thức trong Stick, Ball và Toy phải là tĩnh bởi vì chúng sẽ nói chuyện với một cơ sở dữ liệu để lấy tất cả các mục trong cơ sở dữ liệu cho mỗi lớp.
CHỈNH SỬA 2: Đối với những người nói bạn không thể làm điều này bằng bất kỳ ngôn ngữ nào, điều đó không đúng. Bạn chắc chắn có thể làm điều này trong Ruby, nơi các phương thức lớp được kế thừa. Đây không phải là trường hợp ai đó không nhận được OO, đây là trường hợp thiếu chức năng trong ngôn ngữ Java. Bạn có thể cố gắng lập luận rằng bạn không bao giờ cần phải kế thừa các phương thức tĩnh (class), nhưng điều đó hoàn toàn sai và tôi sẽ bỏ qua bất kỳ câu trả lời nào tạo ra các điểm như vậy.
Lý do duy nhất một phương pháp tĩnh trừu tượng sẽ làm cho bất kỳ ý nghĩa là vì kế thừa phương thức tĩnh lạ của Java. C# không cho phép bạn kế thừa các phương thức tĩnh, bởi vì thẳng thắn nó không có ý nghĩa (các phương thức tĩnh thuộc về lớp, không phải là cá thể). – Powerlord
@R. Bemrose: Đối với những người trong chúng ta, những người không phải là lập trình viên C#, bạn có thể giải thích cách C# khác với Java về "kế thừa phương thức tĩnh lạ" không? Lần trước tôi đã kiểm tra Java không hỗ trợ kế thừa các phương thức tĩnh. – Asaph
Bạn có thể giải thích tại sao bạn cần chức năng này được thực hiện trong tất cả các lớp dẫn xuất là tĩnh? Tại sao phương pháp trừu tượng bình thường lại không đủ? – Jherico