Tôi đang cố gắng xây dựng một lớp thực hiện Queue
và Map
. Cả hai giao diện xác định các phương pháp remove(Object)
, nhưng với kiểu trả về khác nhau:Triển khai giao diện không tương thích
public interface Collection<E> { //Queue extends Collection, which has the problem method
public boolean remove(Object e);
//...
}
public interface Map<K,V> {
public V remove(K key);
//...
}
public class QueuedMap<K,V> extends AbstractMap implements Queue {
public V remove(K key) {/* ... */}
//ERROR: V is not compatible with boolean
//...
}
Các loại tẩy xoá của K đang gây ra những hai chữ ký phương pháp để va chạm. Tôi không thể có một trong số chúng vì đó là ghi đè không hợp lệ và tôi không thể có cả hai vì chúng có cùng chữ ký. Có cách nào mà tôi có thể làm cho hai giao diện này cùng tồn tại?
khỏi vòng đeo tay, điều này dường như không thể đối với tôi. –
Lớp học của bạn sẽ quyết định cái nào nên sử dụng, nếu bạn gọi loại bỏ (khóa)? –
[Không nhìn tốt] (http://stackoverflow.com/questions/573621/is-the-c-sharp-explicit-implementation-of-the-interface-present-in-java) –