09/11/2018, 23:09

Lập trình hướng đối tượng Interface( phần 3)

Những tính chất của Interface trong lập trình hướng đối tượng, và ứng dụng của nó trong Laravel.

Xin chào mọi người.

Hôm nay mình sẽ trình bầy một số khái niệm tính chất quan trọng của interface.

-Interface trong hướng đối tượng là một khuôn mẫu, giúp cho chúng ta tạo ra bộ khung cho một hoặc nhiều đối tượng và nhìn vào interface thì chúng ta hoàn toàn có thể xác định được các phương thức và các thuộc tính cố định (hay còn gọi là hằng) sẽ có trong đối tượng implement nó.

-Để khai báo interface trong PHP chúng ta dùng cú pháp:

 

interface InterfaceName
{
    //code
}

Những tính chất của Interface.

Interface không phải là một đối tượng.
Trong interface chúng ta chỉ được khai báo phương thức chứ không được định nghĩa chúng.
Trong interface chúng ta có thể khai báo được hằng nhưng không thể khai báo biến.
Một interface không thể khởi tạo được (vì nó không phải là một đối tượng).
Các lớp implement interface thì phải khai báo và định nghĩa lại các phương thức có trong interface đó.
Một class có thể implement nhiều interface.
Các interface có thể kế thừa lẫn nhau.

 

 Chỉ được khai báo phương thức chứ không được định nghĩa chúng trong interface.

 

interface DongVat
{
    //đúng vì chúng ta chỉ khai báo phương thức trong interface
    public function setName();

    //Sai vì chúng ta không được định nghĩa phương thức trong interface
    public function getName()
    {
        // code
    }
}

 

Trong interface chúng ta chỉ được khai báo hằng không thể khai báo biến.

 

interface DongVat
{
    //đúng vì trong interface có thể khai báo hằng
    const CONNGUOI = False;

    //Sai vì trong interface không thể khai báo biến
    public $name;

}

 

 Một interface không thể khởi tạo được.

 

interface DongVat
{
    //
}

//sai vì interface không thể khởi tạo được
$dongvat = new DongVat();

Các lớp implement lại interface thì phải khai báo và định nghĩa lại các phương thức có trong interface.

 

interface DongVat
{
    public function getName();
}

//Class này đúng vì đã khai báo và định nghĩa lại phương thức getName
//trong interface
class ConLon implements DongVat
{
    private $name;

    public function getName()
    {
        return $this->name;
    }
}

//Class này sai vì chưa khai báo và định nghĩa lại phương thức getName
//trong interface
class ConGa implements DongVat
{
    private $name;

    public function setName($name)
    {
        $this->name = $name;
    }
}

 

Bài liên quan

Lập trình hướng đối tượng Interface( phần 3)

Những tính chất của Interface trong lập trình hướng đối tượng, và ứng dụng của nó trong Laravel.

Điệp Bắp viết 23:09 ngày 09/11/2018

[Học OOP] Bài 8: Kế thừa trong lập trình hướng đối tượng c++ (Phần 1)

Bài viết này là phần 8 trong 9 bài của Series Học lập trình hướng đối tượng OOP Học lập trình hướng đối tượng OOP [Học OOP] Bài 1: Các đặc điểm mới trong c++ [Học OOP] Bài 2: Tổng quan về lập trình hướng đối tượng [Học OOP] Bài 3: Lớp trong lập trình hướng đối tượng [Học OOP] ...

Tạ Quốc Bảo viết 14:25 ngày 02/10/2018

Lập trình hướng đối tượng trong PHP - Phần 3

Xin chào mọi người, đây sẽ là bài viết cuối cùng trong các bài viết về Lập trình hướng đối tượng trong PHP. Ở 2 phần trước mình đã nói tổng quan về lập trình hướng đối tượng trong PHP. Bài viết này mình sẽ nói đến chuẩn PSR và SOLID. Đây là những chuẩn về coding convention trong lập trình PHP. Mong ...

Bùi Văn Nam viết 18:13 ngày 12/08/2018

Lập trình hướng đối tượng trong PHP(Phần 3)

Xin chào tất cả mọi người. Hôm nay mình quay lại loạt bài về Lập trình hướng đối tượng trong PHP. Trong hai phần trước, mình đã đề cập đến rất nhiều vấn đề quan trọng của Lập trình hướng đối tượng trong PHP. Trong phần cuối này, mình sẽ chia sẻ về 3 vấn đề cuối cùng trong loạt bài viết, đó là: ...

Tạ Quốc Bảo viết 16:54 ngày 12/08/2018

Lập trình hướng đối tượng với PHP và những điều cần biết (Phần 3)

Phần 1: Lập trình hướng đối tượng với PHP và những điều cần biết (Phần 1) Các đặc điểm cơ bản của lập trình hướng đối tượng. Chúng được thể hiện như thế nào trong PHP. Sự khác biệt giữa Abstract Class và Interface. Thế nào là một hàm static. Phân biệt cách dùng từ khoá static::method() với ...

Bùi Văn Nam viết 15:49 ngày 12/08/2018
+1