20. Interface trong lập trình java hướng đối tượng

Interface trong lập trình Java hướng đối tượng là một cấu trúc mà cho phép định nghĩa một tập hợp các phương thức trừu tượng (abstract methods) và các hằng số. Interface cung cấp một cách để mô hình hóa các hành vi chung mà các lớp khác nhau có thể triển khai.

Để khai báo một interface trong Java, sử dụng từ khóa interface:

java
interface MyInterface {
    // Khai báo các phương thức trừu tượng
    void method1();
    void method2();
    
    // Khai báo các hằng số
    int CONSTANT1 = 10;
    int CONSTANT2 = 20;
}

Một số đặc điểm và quy tắc về interface:

  1. Một interface không thể được khởi tạo trực tiếp, tức là không thể tạo đối tượng từ interface.
  2. Interface chỉ chứa các phương thức trừu tượng (abstract methods) và các hằng số (constants). Các phương thức trong interface không có thân hàm (implementation) và mặc định là public và abstract. Các hằng số trong interface là public, static và final (vì vậy không thể thay đổi).
  3. Một lớp có thể triển khai (implements) nhiều interface cùng một lúc. Để triển khai interface, sử dụng từ khóa implements trong khai báo lớp:
java
class MyClass implements MyInterface {
    // Triển khai các phương thức của interface
    public void method1() {
        // implementation
    }
    
    public void method2() {
        // implementation
    }
}
  1. Một lớp triển khai (implements) interface phải triển khai (định nghĩa) tất cả các phương thức trừu tượng trong interface. Nếu không triển khai các phương thức trừu tượng, lớp đó phải được khai báo là abstract.

Ví dụ:

java
interface Animal {
    void makeSound();
}

class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog is barking");
    }
}

class Cat implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Cat is meowing");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.makeSound(); // Kết quả: "Dog is barking"

        Animal cat = new Cat();
        cat.makeSound(); // Kết quả: "Cat is meowing"
    }
}

Trong ví dụ này, interface Animal chứa một phương thức trừu tượng makeSound(). Lớp DogCat triển khai (implements) interface Animal và định nghĩa phương thức makeSound(). Chúng ta tạo đối tượng dogcat từ các lớp triển khai và gọi phương thức makeSound(). Điều này cho phép chúng ta triển khai các hành vi riêng biệt của đối tượng tương ứng với interface Animal.

Interface trong Java giúp chúng ta tạo ra các hợp đồng (contracts) và mô hình hóa các hành vi chung mà các lớp khác nhau có thể triển khai. Điều này tăng tính linh hoạt và tái sử dụng trong lập trình hướng đối tượng.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top