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ÁPví dụ 1đầu ra ví dụ 2đầu ra 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ượngThí dụgetdata();
?> đầu raTutorials Point 2. Không thể khởi tạo trực tiếpThí dụadddata();
?> đầu raFatal 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 raFatal 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ânCá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 raPHP 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ượngMộ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 raPHP 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ừaNó không hỗ trợ đa kế thừa Thí dụTutorials Point 0đầu raTutorials Point 1Giả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 PHPLớ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àyabstract 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 PHPVí 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) 3Phầ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ệnhSơ đồ UML này minh họa mối quan hệ giữa các lớp Dumper, WebDumper và ConsoleDumper 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) 9Phươ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ệnhclass 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. |