Phân biệt Interface và abstract trong Java

Xin chào tất cả các bạn !
Trong bài viết hôm này mình sẽ gửi đến các bạn một bài phần tích để làm rõ khái niệm Interface và Abstract trong JAVA nói riêng và lập trình hướng đối tượng nói chung .
Bắt đầu nào :

Trước tiên chúng ta hãy cùng định nghĩa cái từ khó hiểu này :3
Interface : Một cách khó hiểu mà đại đa số các sách hay viết đó là “Lớp giao diện” … #@!#$#@%@%$ gì gì đó :3
Nhưng với mình thì Interface chỉ đởn giản như sau :
Các bản thử tưởng tượng , bạn là một người rất giàu có . Tài sản của bạn có đến 20 ngôi nhà. Và mỗi ngôi nhà của bạn lại thì lại có một chìa khóa riêng . Nếu bạn muốn vào bất kỳ một ngôi nhà nào trong 20 ngôi nhà thì phải nhớ chính xác chìa khóa của ngôi nhà đó…Điều này theo bạn nghĩ có gây khó khăn cho bạn ko ? Theo mình thì cũng không quá khó nhưng điều quan trọng là bạn sẽ ko thể tìm thấy ngay lập tức một chìa khóa cho ngôi nhà mà bạn cần vào. Vậy sao chúng ta không nghĩ đến một giải pháp hay hơn là làm một CHÌA KHÓA VẠN NĂNG mà chỉ cần mỗi chìa khóa đó có thể mở tất cả các ngôi nhà !
Đọc đến đây bạn hãy thử liên tưởng …
– Mỗi ngôi nhà là một class của bạn tạo ra
– Mỗi chìa khóa là một phương thức của mỗi class đó. Tất cả các method đều có chung nhiệm vụ là để mở khóa – tất nhiên là cách mở của môi ngôi nhà là khác nhau.
– Chiều khóa vạn năng là interface của bạn
Theo cách liên tưởng đó, bạn đã hiểu được phần nào chức năng của interface rồi đúng không nào ? Giờ hãy tiếp tục với một ví dụ thực tế hơn
Bạn có 1 interface
Public interface KeyPro {
public void key();
}

Bạn có 2 class sau đều implement interface KeyPro :
Public Class Home1 implements KeyPro{
public void key(){
// your code
}
}

Public Class Home2 implements KeyPro{
public void key(){
// your code
}
}

Sau khi đã khởi tạo interface và implement từ các class, công việc chúng ta bây giờ là xem nó hoạt động thế nào ?
– Giả sử bạn muốn vào Home1 thì thực hiện như sau :
public static void main (String[] args)
{
KeyPro key = new Home1(); // ( đồng nghĩa với việc : “Tôi muốn vào nhà 1″ )
key.key(); // ( đồng nghĩa với việc : “Sử dụng khóa vạn năng để vào ” )
}

– Giả sử bạn muốn vào Home2 thì thực hiện như sau :
public static void main (String[] args)
{
KeyPro key = new Home2(); // ( đồng nghĩa với việc : “Tôi muốn vào nhà 2″ )
key.key(); // ( đồng nghĩa với việc : “Sử dụng khóa vạn năng để vào ” )
}

Đến đây chắc các bạn đã hiểu hết ý nghĩa của interface rồi đúng không nào !
Hẹn gặp các bạn trong phần tiếp theo …

Nhận xét