2016-01-24 13 views
6

tôi thấy bằng văn bản trong hầu hết các places-Có phải tất cả các phương thức trừu tượng giao diện không?

"All of the methods in an interface are abstract." 

Nhưng một giao diện cũng có thể chứa default methodsstatic methods và phương pháp tổ chức tồn tại cho các phương pháp mặc định và phương pháp tĩnh.

vì vậy tất cả các phương pháp trừu tượng giao diện đều có?

+4

Android hiện không sử dụng Java 8 ** **, vì vậy không có phương pháp mặc định cho thời điểm này; tất cả trừu tượng. –

Trả lời

6

Đó là đúng

Tất cả các phương pháp của nó là trừu tượng, bất kể các bộ điều chỉnh truy cập của nó.

Một lời giải thích hoàn hảo bằng cách @coder:

Một giao diện giống như một "thuần túy" lớp trừu tượng. Lớp học và tất cả các phương pháp của nó là trừu tượng. Một lớp trừu tượng có thể đã thực hiện các phương thức nhưng bản thân lớp đó không thể được khởi tạo (hữu ích cho việc thừa kế và sau DRY).

Đối với giao diện, vì không có bất kỳ triển khai nào, tất cả chúng là hữu ích cho mục đích của chúng: hợp đồng. Nếu bạn triển khai Giao diện thì bạn phải triển khai các phương thức trong giao diện.

Vì vậy, sự khác biệt là một lớp trừu tượng có thể có phương pháp triển khai trong khi giao diện không thể.

Lý do chúng tách biệt nhau nên lớp học có thể triển khai một số giao diện . Java và C# hạn chế một lớp học vốn có từ một lớp cha đơn . Một số ngôn ngữ cho phép bạn kế thừa từ nhiều lớp học và bạn có thể hoàn thành công việc của giao diện qua lớp trừu tượng "hoàn toàn" . Nhưng đa kế thừa có vấn đề của nó, cụ thể là vấn đề kim cương sợ hãi

Có xem xét tài liệu Oracles trên Abstract methods and classes.

6

Từ Java 8, một giao diện cũng có thể chứa các phương pháp mặc định và phương pháp tĩnh cùng với phương pháp trừu tượng. Các phương thức của phương thức tồn tại cho các phương thức mặc định và tĩnh.

Một trong những thay đổi thiết kế lớn nhất trong Java 8 là với khái niệm về giao diện . Trước Java 7, chúng tôi chỉ có thể có các khai báo phương thức trong các giao diện . Nhưng từ Java 8, chúng ta có thể có các phương thức mặc định và các phương thức tĩnh trong các giao diện.

Giao diện mặc định Phương pháp

Đối với việc tạo ra một phương pháp mặc định trong giao diện, chúng ta cần phải sử dụng “mặc định” từ khóa với chữ ký phương pháp.

Interface phương pháp tĩnh

phương pháp tĩnh cũng tương tự như mặc định các phương pháp ngoại trừ việc chúng ta không thể ghi đè lên chúng trong các lớp thực hiện. Tính năng này giúp chúng tôi trong việc tránh các kết quả không mong muốn trong trường hợp triển khai kém ở các lớp con .

Để biết thêm kiểm tra this

0

Tất cả các phương pháp trong một giao diện rất trừu tượng. Tuyên bố này là True. Bắt buộc phải có giao diện để có phương thức trừu tượng chỉ áp dụng đa thừa kế.

-1

TẤT CẢ các phương pháp trong giao diện Tóm tắt và theo mặc định các trường trong JAVA là tĩnh, côngthức và tất cả các thành viên là công

và chúng tôi không thể làm cho các thành viên của giao diện riêngđược bảo vệ .

0

Điều này là sai theo Jeanne Boyarsky & cuốn sách của Scott Selikoff, OCA: Chương trình đào tạo chứng chỉ Java SE 8 lập trình viên Oracle SE 8 1Z0-808.

. . . bởi vì trước Java 8 tất cả các phương thức giao diện sẽ được giả định là trừu tượng. Vì Java 8 bây giờ bao gồm các phương thức mặc định và tĩnh và chúng không bao giờ trừu tượng, bạn không thể giả định công cụ sửa đổi trừu tượng sẽ được áp dụng ngầm cho tất cả các phương thức của trình biên dịch. (trang 346 của sách)

0

Tất cả phương thức trong giao diện java là trừu tượng, chỉ khi chúng được khai báo rõ ràng là mặc định o tĩnh thì chúng không trừu tượng.

Các vấn đề liên quan