Bài viết [java] Sử dụng Interface và adstract

Thảo luận trong 'Java/Java Script' bắt đầu bởi hongoctrien, 18 Tháng mười hai 2012.

  1. Offline

    hongoctrien

    • Friends

    Số bài viết:
    2.449
    Đã được thích:
    2.464
    Điểm thành tích:
    2.431
    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
  2. Offline

    duyen.only.it

    • Friends

    Số bài viết:
    569
    Đã được thích:
    522
    Điểm thành tích:
    350
    Tr ơi! @hongoctrien Tr sửa lại các chữ "adstract" thành "abstract" tề
    hongoctrien thích bài này.
  3. Offline

    tangvanbinh

    • Đội cứu hộ máy tính

    Số bài viết:
    449
    Đã được thích:
    197
    Điểm thành tích:
    140
    cái này mà mấy đứa lỡ viết vô là ko biết lỗi mô luôn đó

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí