Các ghi chú sau đây đề cập đến việc sử dụng các từ khóa defaultvà statictrong Giao diện trên Java 8.
Ví dụ về mã 1. Bản thân việc có các trường hoặc phương thức không rõ ràng không gây ra bất kỳ vấn đề nào nhưng việc tham chiếu đến các trường/phương thức đó một cách không rõ ràng sẽ gây ra lỗi thời gian biên dịch.
Vì vậy bạn không thể gọi : System.out.println(VALUE);vì nó sẽ mơ hồ (có hai định nghĩa VALUE). Nhưng những dòng sau đây là hợp lệ:
C tc = new C();
System.out.println(( ( I1) tc).VALUE);
I1 tc = new C();
System.out.println(tc.VALUE);
Ví dụ về mã 2. defaultTừ khóa.
Lưu ý rằng đó getId()là phương thức mặc định trong Giao diện1.
Vì giao diện Interface2 khai báo lại phương thức getId là trừu tượng nên lớp D phải cung cấp cách triển khai cho phương thức này hoặc được đánh dấu là trừu tượng. Trong trường hợp này, việc tạo bản tóm tắt lớp sẽ không giúp ích gì vì câu lệnh: Interface1 acct = new D(); Nếu bạn tạo bản tóm tắt lớp D thì bạn sẽ gặp lỗi trình biên dịch sau: Cannot instantiate the type D.
Nếu lớp D đã triển khai Giao diện 1 thay vì Giao diện 2 thì không bắt buộc phải cung cấp cách triển khai cho phương thức mặc định getId. Tính năng này sẽ giúp chúng tôi mở rộng giao diện bằng các phương pháp bổ sung, tất cả những gì chúng tôi cần là cung cấp cách triển khai mặc định trong giao diện bằng cách sử dụng từ khóa defaultgiống như cách được sử dụng trong Giao diện1.
Ví dụ về mã 3. Java không cho phép mở rộng nhiều lớp vì điều này sẽ dẫn đến “Vấn đề kim cương” trong đó trình biên dịch không thể quyết định nên sử dụng phương thức siêu lớp nào. Với các phương thức mặc định, vấn đề kim cương cũng sẽ phát sinh đối với các giao diện.
Lớp D hiển thị ở trên đang triển khai Giao diện 1 và Giao diện 2. Trình biên dịch không thể quyết định nên chọn phương thức getId nào. Bắt buộc phải cung cấp cách triển khai cho các phương thức giao diện mặc định phổ biến. Vì vậy, nếu một lớp đang triển khai cả hai giao diện trên, nó sẽ phải cung cấp cách triển khai cho getId()phương thức, nếu không trình biên dịch sẽ đưa ra lỗi thời gian biên dịch.
Những điểm quan trọng về các phương thức mặc định của giao diện Java 8:
Lưu ý rằng getOtherId()trong lớp E là một phương thức lớp đơn giản, nó không ghi đè phương thức giao diện.
Khi chúng tôi chạy ứng dụng, chúng tôi nhận được kết quả sau:
Object 1
E: get Id
E: get Other Id
Object 2
E: get Id
Calling the static method in Interf1
Interface 1: get Other Id
Những điểm quan trọng về phương thức tĩnh giao diện Java 8:
Để biết thêm thông tin hãy xem tài liệu chính thức tại Oracle .
Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.
Giới thiệu Apache Kafka là một nền tảng phát trực tuyến phân tán mã nguồn mở, xử lý luồng dữ liệu thời gian thực quy mô lớn, thông lượng cao, có khả năng chịu lỗi. Hệ thống này dựa trên mô hình đăng ký xuất bản trong đó nhà sản xuất xuất bản tin nhắn cho các chủ đề và người tiêu dùng đăng ký các chủ đề đó để sử dụng tin nhắn.
Trong thế giới siêu kết nối ngày nay, các hệ thống truyền thông đóng một vai trò then chốt trong việc định hình dư luận và do đó, trong việc ra quyết định dân chủ. Trong phân tích sâu sắc của mình về nền kinh tế chính trị của truyền thông, học giả Robert McChesney thách thức sự hiểu biết thông thường và trình bày cái mà ông gọi là “năm sự thật” về truyền thông.
Trong bối cảnh kinh doanh phát triển nhanh chóng ngày nay, khái niệm làm việc kết hợp và làm việc từ xa đã đạt được động lực chưa từng có. Khi các công ty tiếp tục thích ứng với nhu cầu và kỳ vọng thay đổi của nhân viên, các chuyên gia từ nhiều lĩnh vực khác nhau đã cùng nhau thảo luận về lợi ích, thách thức và tương lai của cách làm việc mang tính biến đổi này.
Giới thiệu: Chào mừng những độc giả dũng cảm đến với cuộc hành trình sẽ đưa chúng ta đến những nơi sâu thẳm nhất của hành tinh chúng ta. Trong blog này, chúng tôi đi sâu vào thế giới bí ẩn của Rãnh Mariana, khám phá những bí mật ẩn giấu của nó và khám phá những sự thật lạnh thấu xương nằm bên dưới bề mặt của nó.