Ngày 1: Tìm hiểu về Java Interfaces.
Trong Java, Interfaces đóng vai trò quan trọng trong việc phát triển ứng dụng OOP. Chúng giúp khiến code của bạn trở nên linh hoạt hơn và dễ mở rộng hơn. Interface trong Java là một prototype hoặc một contract để các lớp khác/phương thức tuân theo. Các lớp triển khai (implements) các interface mà tuân theo contracts này. Interfaces định nghĩa các phương thức, nhưng không thi hành. Việc thi hành nằm ở lớp triển khai.
Ví dụ chi tiết:
“`Interface Animal {
public void eat();
public void sound();
}
Class Dog implements Animal {
public void eat() {
System.out.println(“Dog eats”);
}
public void sound() {
System.out.println(“Dog barks”);
}
}
“`
Trường hợp đặc biệt: Java không hỗ trợ đa kế thừa. Nhưng nếu một class muốn triển khai nhiều interfaces, nó có thể làm bằng cách tách interface bằng dấu phẩy.
Các câu hỏi:
1. Interface trong Java có thể chứa được phương thức với phần thân code không?
Trả lời: Không, interface chỉ có thể chứa signature của phương thức mà không có phần code thực thi.
2. Tại sao không nên sử dụng interface để chứa hằng số?
Trả lời: Sử dụng interface để chứa hằng số là một mẹo để giả lập đa kế thừa và không nên làm. Nó vi phạm nguyên tắc “Composition over Inheritance” (Tính cấu thành trên tính kế thừa).
3. Trong Java có thể thực hiện đa kế thừa từ interface được không?
Trả lời: Đúng, một lớp có thể kế thừa từ nhiều interface.
4. Có thể khởi tạo một đối tượng từ interface không?
Trả lời: Không, Interface không thể khởi tạo một đối tượng.
5. Trong Java 8, interface có thể chứa phương thức default được không?
Trả lời: Đúng, trong Java 8, interface có thể chứa phương thức default có thân code.