Interface là gì?
Interface là gì?
Trong bài viết này, mình sẽ giải thích từ cấp độ nghĩa của
từ đến khái niệm của interface.
Các đối tượng tương tác
với thế giới bên ngoài thông qua phương thức (sau này cụm từ “trạng thái” và “hành
vi” như các bài viết trước mình sẽ thay bằng “thuộc tính” và “phương thức”). Các
phương thức của một đối tượng chính là mối liên hệ sự tương tác giữa đối tượng
và thế giới thực, hay còn gọi nó là interface (giao diện). Như một cái ti vi, là một
ví dụ, ta có thể tương tác với các điện tử bên trong chiếc ti vi thông qua các nút bấm. Vậy các nút bấm chính là interface
giữa bạn và ti vi.
Interface giúp bạn và ti vi tương tác
với nhau
Trong lập trình hướng đối tượng, khái
niệm interface nghĩa là tập hợp các phương
thức, không có các thuộc tính như một class. Cú pháp khởi tạo interface như sau:
//Tạo một interface của xe đạp
interface IBicycle {
//interface này gồm 1 phương thức cho xe đạp
chạy khi có tín hiệu bắt đầu, phương thức này vẫn chưa được định nghĩa
boolean isRun(boolean start);
}
Khi một lớp muốn sử dụng interface, ta ghi implement phía sau lớp cộng với tên interface.
class Bicycle implements
IBicycle{
//Định nghĩa phương thức isRun trong lớp
Bicycle
public boolean isRun(boolean start) {
return start==true;
}
}
Thông thường, interface không định nghĩa phương thức mà ta phải định nghĩa nó
trong một class đã implements interface.
Tuy nhiên, nếu muốn định nghĩa trước ở trong interface, ta dùng từ khóa static
hoặc default trước phương thức đó. Khi đó tại class có implements chúng ta không
cần phải định nghĩa lại phương thức trên. (Sự khác biệt giữa static và default
các bạn có thể tham khảo trong các bài khác).
Interface cũng có 1 phần giống như kế thừa, tức là cũng thừa hưởng những tính
chất từ gốc sang, nhưng xét về mặt ý nghĩa, hai khái niệm này hoàn toàn khác
nhau.
Nói về interface thì phát sinh rất nhiều vấn đề
xoay quanh nó, bài viết của mình chỉ giải thích sơ bộ về interface, không đi sâu
về nó nhiều. Các bạn có thể tham khảo thêm ở các tài liệu khác để biết rõ hơn.
Nội dung bài viết dựa trên Oracle kết hợp với kiến thức mình có.
Người viết: Lê Công Diễn
Mang đi nhớ ghi nguồn
Nhận xét
Đăng nhận xét