Giao diện interface trong lập trình PHP

Cách khai báo giao diện interface trong lập trình hướng đối tượng OOP với PHP, triển khai giao diện với từ khóa implements

Khai báo interface trong trong PHP

Interface là nơi liệt kê một danh sách các phương thức (public) để để một lớp bắt buộc phải triển khai chúng. Bản thân interface không triển khai một phương thức nào, nó chỉ
khai báo tên các phương thức (tương tự phương thức abstract), nói cách khác
tất cả các phương thức đều là abstract (mặc dù không dùng từ khóa abstract khi khai báo).

Định nghĩa giao diện dùng từ khóa interface, cú pháp tương tự class.

Ví dụ ILogger khai báo một giao diện.

interface ILogger
{
    public function log($message);
}

Triển khai giao diện implements interface

Một lớp cho biết nó sử dụng giao diện nào để triển khai thì dùng từ khóa
implements sau đó liệt kê các giao diện sẽ triển khai.
Trong lớp bắt buộc vào triển khai (định nghĩa) các phương thức mô tả trong interface

// FileLogger - triển khai giao diện ILogger
class FileLogger implements ILogger{
	public function log($message){
		echo sprintf("Log %s to the file\n",$message);
	}
}

// DBLogger - triển khai giao diện ILogger
class DBLogger implements ILogger{
	public function log($message){
		echo sprintf("Log %s to the database\n",$message);
	}
}

Chú ý, một lớp có thể triển khai nhiều giao diện

class ClassName implements InterfaceName1, InterfaceName2
{

}

Một interface cũng có thể kế thừa interface khác bằng từ khóa extends. Hoặc một vừa kế thừa lớp khác và triển khai
các giao diện

interface InterfaceA {
    function method1();
}

// InterfaceB kế thừa interfaceA
// B có các phương thức quy định trong A
interface InterfaceB extends InterfaceA {
    function method2();
}

class ClassA {
    function method3()
    {

    }
}

// Lớp ClassB kế thừa ClassA và triển khai giao diện InterfaceB
class ClassB extends ClassA implements InterfaceB {

    function method1()
    {
        // Implement method2() method.
    }
    function method2()
    {
        // Implement method2() method.
    }
}

ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB

Đăng ký nhận bài viết mới