Làm cách nào để sử dụng lớp trừu tượng trong PHP?

Một lớp trừu tượng là sự pha trộn giữa một giao diện và một lớp. Nó có thể được xác định chức năng cũng như giao diện

  • Các lớp mở rộng một lớp trừu tượng phải thực hiện tất cả các phương thức trừu tượng được định nghĩa trong lớp trừu tượng
  • Một lớp trừu tượng được khai báo giống như các lớp có thêm từ khóa 'trừu tượng'

CÚ PHÁP

ví dụ 1

đầu ra

Làm cách nào để sử dụng lớp trừu tượng trong PHP?

ví dụ 2

đầu ra

Làm cách nào để sử dụng lớp trừu tượng trong PHP?

PHP5 đi kèm với mô hình hướng đối tượng với nó, Một số khái niệm về mô hình hướng đối tượng là. lớp, đối tượng, đóng gói, đa hình, lớp trừu tượng và lớp cuối cùng, phương thức, giao diện và kế thừa, v.v. Trong bài báo này,

chúng ta sẽ thảo luận về Lớp trừu tượng và các tính năng của nó liên quan đến các kỹ thuật hướng đối tượng trong PHP. Ngoài ra, chúng ta sẽ tìm hiểu cách triển khai Lớp trừu tượng cùng với một số ví dụ

Tuy nhiên, trước khi tìm hiểu quá sâu, hãy tìm hiểu cách định nghĩa lớp trừu tượng

Chúng ta có thể khai báo một lớp là trừu tượng bằng cách gắn tên của lớp với từ khóa trừu tượng. Định nghĩa rất rõ ràng, lớp chứa các phương thức trừu tượng được gọi là lớp trừu tượng. Các phương thức trừu tượng định nghĩa trong lớp trừu tượng chỉ có tên và đối số, không có mã nào khác

Không thể tạo đối tượng của lớp trừu tượng. Thay vào đó, chúng ta cần mở rộng các lớp con tính toán định nghĩa của hàm thành phần thân của các phương thức trừu tượng trong các lớp con và sử dụng các lớp con này để tạo các đối tượng.

Hãy thảo luận về một số thông tin quan trọng về các lớp trừu tượng trong PHP

1. Một lớp trừu tượng có thể có trừu tượng cùng với các phương thức không trừu tượng

Thí dụ

getdata();
?>

đầu ra

Tutorials Point

2. Không thể khởi tạo trực tiếp

Thí dụ

adddata();
?>

đầu ra

Fatal error: Uncaught Error: Cannot instantiate abstract class AbstractClass

3. Khả năng hiển thị tương tự (hoặc ít bị hạn chế hơn)

Tất cả các lớp con phải định nghĩa tất cả các phương thức được đánh dấu là trừu tượng trong lớp cha, với tất cả các phương thức này cần được xác định bằng cùng một chữ ký hoặc chữ ký ít bị hạn chế hơn. Giả sử Trong lớp cha, nếu chúng ta định nghĩa một phương thức trừu tượng với khả năng hiển thị được bảo vệ, thì trong quá trình thực thi lớp con, nó phải được xác định bằng bảo vệ hoặc công khai, nhưng không phải với riêng tư

Thí dụ

addValue();
?>

đầu ra

Fatal errorAccess level to ConcreteClass::addValue() must be public (as in class AbstractBaseClass1)

4. Một phương thức trừu tượng không thể chứa phần thân

Các phương thức được khai báo là trừu tượng chỉ cần khai báo chữ ký của phương thức - chúng không thể định nghĩa bất kỳ ai bên trong chúng. Mặc dù cơ thể có thể hiện diện bên trong một phương pháp không trừu tượng

Thí dụ

printValue();
?>

đầu ra

PHP Fatal error: Abstract function ParentClass::printValue() cannot contain body

5. Bất kỳ lớp nào chứa ít nhất một phương thức trừu tượng phải được khai báo là lớp trừu tượng

Một lớp trừu tượng có thể có các phương thức trừu tượng và không trừu tượng, nhưng nó phải chứa ít nhất một phương thức trừu tượng. Nếu nó chứa một phương thức trừu tượng thì nó phải được khai báo là trừu tượng

Thí dụ

________số 8_______

đầu ra

PHP Fatal error: Class AbstractClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (AbstractClass::getValue)

6. Lớp trừu tượng không hỗ trợ đa kế thừa

Nó không hỗ trợ đa kế thừa

Thí dụ

Tutorials Point
0

đầu ra

Tutorials Point
1

Giải trình

Ở đây chúng ta đã khai báo SuperClass là một lớp trừu tượng có phương thức test() và welcome(), ClassA và ClassB và các lớp cụ thể mở rộng từ một lớp trừu tượng. Sau đó, chúng tôi đã cố gắng tạo Lớp mở rộng từ Lớp và Lớp B. Như rõ ràng từ đoạn mã, khi gọi phương thức welcome() sử dụng đối tượng ClassC, trình biên dịch không thể chọn xem nó phải gọi phương thức welcome() của ClassA hay phương thức welcome() của ClassB. Vì vậy, để tránh những phức tạp như vậy, PHP không hỗ trợ đa kế thừa

Ghi chú

Một lớp trừu tượng có thể mở rộng một lớp trừu tượng khác, Lớp trừu tượng có thể cung cấp việc triển khai giao diện

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng lớp trừu tượng PHP để định nghĩa một giao diện cho các lớp khác mở rộng

Giới thiệu về lớp trừu tượng PHP

Lớp trừu tượng là lớp không thể khởi tạo. Thông thường, một bản tóm tắt định nghĩa một giao diện cho các lớp khác mở rộng

Để định nghĩa một lớp trừu tượng, bạn thêm từ khóa

abstract function methodName(arguments);

Code language: PHP (php)
1 như sau

<?php abstract class className { // ... }

Code language: HTML, XML (xml)

Một lớp trừu tượng có thể có các thuộc tính và phương thức như một lớp thông thường. Nhưng nó không thể được khởi tạo

Tương tự như một lớp trừu tượng, một phương thức trừu tượng là một phương thức không có triển khai. Để định nghĩa một phương thức trừu tượng, bạn cũng sử dụng từ khóa

abstract function methodName(arguments);

Code language: PHP (php)
1 trước chữ ký phương thức như thế này

abstract function methodName(arguments);

Code language: PHP (php)

Trong hầu hết các trường hợp, một lớp trừu tượng sẽ chứa ít nhất một phương thức trừu tượng mặc dù nó không bắt buộc. Nếu một lớp chứa một hoặc nhiều phương thức trừu tượng, nó phải là một lớp trừu tượng

Nếu một lớp mở rộng một lớp trừu tượng, thì nó phải thực hiện tất cả các phương thức trừu tượng hoặc chính nó được khai báo là trừu tượng

Ví dụ lớp trừu tượng PHP

Ví dụ sau định nghĩa một lớp trừu tượng có tên là

abstract function methodName(arguments);

Code language: PHP (php)
3 có một phương thức trừu tượng là

abstract function methodName(arguments);

Code language: PHP (php)
4

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)

Để kết xuất thông tin trên web, bạn có thể mở rộng lớp

abstract function methodName(arguments);

Code language: PHP (php)
3

Phần sau định nghĩa lớp

abstract function methodName(arguments);

Code language: PHP (php)
6 mở rộng lớp

abstract function methodName(arguments);

Code language: PHP (php)
3. Vì lớp

abstract function methodName(arguments);

Code language: PHP (php)
3 có phương thức trừu tượng dump(), nên lớp

abstract function methodName(arguments);

Code language: PHP (php)
6 cần triển khai phương thức

abstract function methodName(arguments);

Code language: PHP (php)
4

<?php abstract class Dumper { abstract public function dump($data); } class WebDumper extends Dumper { public function dump($data) { echo '<pre>'; var_dump($data); echo '</pre>'; } }

Code language: HTML, XML (xml)

Sau đây tạo một thể hiện mới của lớp

abstract function methodName(arguments);

Code language: PHP (php)
6 và gọi phương thức

abstract function methodName(arguments);

Code language: PHP (php)
4

$webDumper = new WebDumper(); $webDumper->dump('PHP abstract class is awesome!');

Code language: PHP (php)

If you open the web browser, you’ll see the message is wrapper inside a

 tag:

string(30) "PHP abstract class is awesome!"

Code language: JavaScript (javascript)

Sau này, nếu bạn muốn kết xuất thông tin vào dòng lệnh, bạn có thể định nghĩa một lớp e. g. ,

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
3 mở rộng lớp

abstract function methodName(arguments);

Code language: PHP (php)
3

<?php class ConsoleDumper extends Dumper { public function dump($data) { var_dump($data); } }

Code language: HTML, XML (xml)

Phương thức

abstract function methodName(arguments);

Code language: PHP (php)
4 của

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
3 gọi hàm

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
7 để kết xuất thông tin vào dòng lệnh

Sơ đồ UML này minh họa mối quan hệ giữa các lớp Dumper, WebDumper và ConsoleDumper

Làm cách nào để sử dụng lớp trừu tượng trong PHP?
Làm cách nào để sử dụng lớp trừu tượng trong PHP?

Phần sau định nghĩa một lớp

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
8 có phương thức tĩnh

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
9

Phương thức

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
9 trả về một đối tượng

abstract function methodName(arguments);

Code language: PHP (php)
6 mới nếu tập lệnh được thực thi trên máy chủ web và đối tượng

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
3 nếu tập lệnh được thực thi trên dòng lệnh

class DumperFactory { public static function getDumper() { return PHP_SAPI === 'cli' ? new ConsoleDumper() : new WebDumper(); } }

Code language: PHP (php)

Phần sau đây sử dụng

<?php abstract class Dumper { abstract public function dump($data); }

Code language: HTML, XML (xml)
8 để nhận Dumper dựa trên nơi tập lệnh chạy và hiển thị thông báo

$dumper = DumperFactory::getDumper(); $dumper->dump('PHP abstract class is awesome!');

Code language: PHP (php)

If you execute the script on the web browser, you’ll see the following message wrapped nicely in a

 tag:

string(30) "PHP abstract class is awesome!"

Code language: JavaScript (javascript)

Tuy nhiên, nếu bạn chạy tập lệnh bằng PHP CLI, bạn sẽ chỉ thấy thông báo mà không có thẻ

<?php abstract class Dumper { abstract public function dump($data); } class WebDumper extends Dumper { public function dump($data) { echo '<pre>'; var_dump($data); echo '</pre>'; } }

Code language: HTML, XML (xml)
4

Làm cách nào để sử dụng hàm lớp trừu tượng trong PHP?

Để khai báo một lớp là trừu tượng, chúng ta cần tiền tố tên của lớp với từ khóa trừu tượng . Chúng tôi đặt các phương thức trừu tượng cũng được khai báo với từ khóa trừu tượng trong lớp trừu tượng. Các phương thức trừu tượng bên trong một lớp trừu tượng không có phần thân, chỉ có tên và tham số bên trong dấu ngoặc đơn.

PHP có hỗ trợ lớp trừu tượng không?

PHP có các lớp và phương thức trừu tượng . Các lớp được định nghĩa là trừu tượng không thể được khởi tạo và bất kỳ lớp nào chứa ít nhất một phương thức trừu tượng cũng phải là trừu tượng. Các phương thức được định nghĩa là trừu tượng chỉ cần khai báo chữ ký của phương thức; .

Lớp trừu tượng PHP là gì?

Các lớp và phương thức trừu tượng là khi lớp cha có một phương thức được đặt tên nhưng cần (các) lớp con của nó để thực hiện các tác vụ. Lớp trừu tượng là lớp chứa ít nhất một phương thức trừu tượng . Một phương thức trừu tượng là một phương thức được khai báo, nhưng không được triển khai trong mã.

Làm cách nào để tạo một thể hiện của lớp trừu tượng trong PHP?

Chúng ta có thể khai báo một lớp là trừu tượng bằng cách gắn tên của lớp với từ khóa trừu tượng . Định nghĩa rất rõ ràng, lớp chứa các phương thức trừu tượng được gọi là lớp trừu tượng. Các phương thức trừu tượng định nghĩa trong lớp trừu tượng chỉ có tên và đối số, không có mã nào khác.