Khai báo lớp cài đặt interface

Một phần của tài liệu Bài giảng lập trình wep PHP (Trang 62 - 65)

class ten_lop implements ten_giao_dien{

//các thuộc tính

//cài đặt các phương thức của giao diện //cài đặt các phương thức khác

}

Interface (tiếp)

Chú ý:

– Các lớp cài đặt interface phải định nghĩa tất cả các phương thức có trong các interface đó.

• Nếu cài đặt không đủ tất cả các phương thức của interface thì lớp đó phải khai báo là abstract. Nếu không PHP sẽ báo một “Falta error”.

– Một interface có thể mở rộng (kế thừa) các interface khác bằng từ khóa extends.

– Một class có thể cài đặt nhiều hơn 1 interface

• Trong khai báo class, các interface ngăn cách nhau bằng dấu phẩy.

Interface (tiếp)

Chú ý:

– Tất cả các phương thức khai báo trong interface

đều phải khai báo với visibility là public.

– Các hằng của interface sử dụng giống như hằng của lớp ngoại trừ việc không thể override ở các lớp/interface cài đặt/kế thừa interface này.

Interface (tiếp)

Ví dụ 1:

interface IPhepToan{

public function cong($a, $b); public function nhan($a, $b); }

class Tinh1 implements IPhepToan { private $a = 2, $b = 1; public function cong($a, $b){

return $a+$b; }

public function nhan($a, $b){ return $a * $b;

} } }

Interface (tiếp)

Ví dụ 1:

class Tinh2 implements IPhepToan { private $a = 2, $b = 1; public function cong($a, $b){

return $a+$b; }

public function tru($a, $b){ return $a - $b; } } ? Interface (tiếp) Ví dụ 1:

interface IPhepToan2 extends IPhepToan{ public function tru($a, $b); }

class Tinh3 implements IPhepToan2 { private $a = 2, $b = 1; public function cong($a, $b){

return $a+$b; }

public function nhan($a, $b){ return $a * $b;

}

public function tru($a, $b){ return $a - $b;

Interface (tiếp)

Ví dụ 1:

interface IPhepToan3 {

public function chia($a, $b); }

class Tinh4 implements IPhepToan2, IPhepToan3{ private $a = 2, $b = 1;

public function cong($a, $b){ ... } public function nhan($a, $b){ ... } public function tru($a, $b){...} public function chia($a, $b){...} }

Interface (tiếp)

Ví dụ 2:

interface IHinhTron { const PI = 3.14;

public function chuVi($banKinh); }

class Tron1 implements IHinhTron { private $bkinh = 10;

const PI = 3.1415;

public function chuVi($bkinh){ ... } } echo IHinhTron::PI; echo Tron1::PI; ? Interface (tiếp) Ví dụ 3: interface IHinhTron { const PI = 3.14; }

class Tron1 implements IHinhTron {...} class Tron2 extends Tron1 {

const PI = 3.1415; } echo IHinhTron::PI; echo Tron2::PI; ? Interface (tiếp) Ví dụ 4: interface IHinhTron {

public function dienTich($a); }

interface IHinhVuong {

public function dienTich($a); }

class Hinh implements IHinhTron, IHinhVuong { public function dienTich($a){

//cài đặt phương thức dienTich nào??? }

}

Một phần của tài liệu Bài giảng lập trình wep PHP (Trang 62 - 65)