Các giao diện kế thừa từ Object
lớp trong Java?
Không, họ không. Và không có giao diện "gốc" chung nào được kế thừa hoàn toàn bởi tất cả các giao diện (như trong trường hợp với các lớp) cho vấn đề đó. (*)
Nếu không thì làm thế nào chúng ta có thể gọi phương thức của lớp đối tượng trên thể hiện giao diện
Một giao diện ngầm định khai báo một phương thức cho mỗi phương thức công khai Object
. Do đó, equals
phương thức này được khai báo ngầm là một thành viên trong một giao diện (trừ khi nó đã kế thừa nó từ một siêu giao diện).
Điều này được giải thích chi tiết trong Đặc tả ngôn ngữ Java, § 9.2 Thành viên giao diện .
9.2 Thành viên giao diện
[...]
- Nếu một giao diện không có siêu giao diện trực tiếp, thì giao diện đó hoàn toàn khai báo một phương thức thành viên trừu tượng công khai m với chữ ký s , kiểu trả về r và ném mệnh đề t tương ứng với mỗi phương thức công khai m với chữ ký s , kiểu trả về r và ném mệnh đề t được khai báo
Object
, trừ khi một phương thức có cùng chữ ký, cùng kiểu trả về và mệnh đề ném tương thích được giao diện khai báo rõ ràng.
[...]
Bài viết này đã được viết lại như một bài viết ở đây .
(*) Lưu ý rằng khái niệm là một subtype của không tương đương với thừa hưởng từ : Giao diện không có giao diện siêu có thực sự phân nhóm của Object
( § 4.10.2 subtyping giữa Class và Interface loại. ) Mặc dù họ không kế thừa từ Object
.