Interface (Khác với GUI - Giao diện người dùng, nhiều người nhầm lẫn cái này!) - Interface được xây dựng để chứa các hằng, các mothods dùng chung cho các class. Các mothods dùng trong Interface phải là trừu tượng (abstract). Mothods trừu tượng là các mothods chỉ có phần header, không có phần body. - Mặc định các biến và mothods khai báo trong Interface là public và abstract Ví dụ: Mã: public interface Persons { public void TinhLuong();//Đây chính là abstract mothod } - Interface được định nghĩa nhằm làm cho code rành mạch hơn vì các class có thể implements các interface. Ví dụ ta muốn xây dựng class NhanVien, vì nhân viên có các yếu tố của interface Persons bên trên nên ta chỉ cần viết: public class NhanVien implements Persons Khi đó class NhanVien sẽ dùng được mothod tính lương nhưng class NhanVien phải định nghĩa lại mothod TinhLuong này. Có nghĩa là lúc này ta mới viết mothod TinhLuong() thực sự. - Một class có thể implements nhiều interface, dùng dấu , để ngăn cách các interface. Ví dụ: Mã: //Inteface DT1 public interface DT1 { final double PI=3.14; //Hằng } //Interface DT2 public interface DT2 { public double ChuVi();//abstract method public double DienTich();//abstract method } //Class DuongTron public class DuongTron implement DT1, DT2 { //Tại lớp này ta phải viết lại mothod ChuVi và DienTich và có thể dùng hằng PI thỏa mái! public double ChuVi() { //code } public double DienTich() { //code } } (Lưu ý: lớp nào dùng interface thì phải định nghĩa lại tất cả mothods có trong interface đó) 2. Mothods trừu tượng là các mothods chỉ có phần header, không có phần body. Xem ví dụ ở trên. 3. abstract class - Là class có chứa các abstract mothods - Các methods trong abstract class phải khai báo với từ khóa abstract (không giống như interface vì interface mặc định gán abstract cho các mothods) - Bất cứ class nào kết thừa abstract class nào đó phải định nghĩa lại các abstract mothods của lớp mà nó thừa kế hoặc không định nghĩa lại nhưng phải ghi lại abstract mothods đó. - Một abstract class có thể chứa cả abstract mothods và các mothods thường. - Khi một class có chứa abstract mothod thì bắt buộc phải có từ khóa abstract đằng trước tên class đó. Link: http://www.ddth.com/showthread.php/77568-Làm-ơn-giải-thích-abstract-class-abstract-method-and-interface#ixzz2FPa508kt