Interface trong Java

Nhập môn Lập trình Hướng đối tượng với Java

Sani Yusuf

Lead Software Engineering Content Developer

Hạn chế của kế thừa

  • Với kế thừa, mọi thành viên đều được kế thừa
  • Không thể chọn lọc thành viên để kế thừa

  // Lớp Car   
  class Car {
    // Dung lượng pin chỉ áp dụng
    // cho xe điện
    public int batteryCapacity;

    void drive() {

    }  
  }


  // Lớp Toyata
  class Toyota extends Car {  
    void drive(){

    }           
  }


// Lớp Main public static class Main { public static void main(String[] args) { Toyota myToyota = new Toyota(); // Mọi xe đều kế thừa "batteryCapacity" // dù không phải xe điện System.out.println( myToyota.batteryCapacity); // Không áp dụng } }
Nhập môn Lập trình Hướng đối tượng với Java

Tạo interface

  • Interface cho phép kế thừa chọn lọc thuộc tính và phương thức
  • Lớp dùng interface với từ khóa implements

  // Interface ElectricCar 
  interface ElectricCar {

  }





  // Tesla triển khai
  // interface ElectricCar
  class Tesla implements ElectricCar {

  }








Nhập môn Lập trình Hướng đối tượng với Java

Thêm thuộc tính vào interface

  • Thuộc tính theo quy ước dùng UPPER_SNAKE_CASE
  • Gán giá trị ngay và không thể thay đổi
  • Thuộc tính ngầm là public static final

  interface ElectricCar {
    // Ngầm public static final
    // Không thể thay đổi
    int BATTERY_CAPACITY = 310;

  }




Nhập môn Lập trình Hướng đối tượng với Java

Thêm phương thức cho interface

  • Interface thường chứa phương thức
  • Phương thức mặc định là abstract, không có phần cài đặt
  • Interface có thể có phương thức cụ thể (có cài đặt)
  • Mọi phương thức abstract phải được lớp con triển khai
  interface ElectricCar {
    // Ngầm public static final
    // Không thể thay đổi
    int BATTERY_CAPACITY = 310;


// Đây là phương thức abstract mặc định void charge();
// Đây là phương thức cụ thể void autoPark() { }
}
class Tesla implements ElectricCar { // Bắt buộc phải triển khai public void charge() { } }
Nhập môn Lập trình Hướng đối tượng với Java

Ayo berlatih!

Nhập môn Lập trình Hướng đối tượng với Java

Preparing Video For Download...