Thuộc tính trừu tượng đặc điểm PHP
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ụ Show
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ã Một lớp hoặc phương thức trừu tượng được định nghĩa bằng từ khóa 4cú pháplớp trừu tượng ParentClass { Khi kế thừa từ một lớp trừu tượng, phương thức của lớp con phải được định nghĩa có cùng tên và cùng hoặc một công cụ sửa đổi truy cập ít bị hạn chế hơn. Vì vậy, nếu phương thức trừu tượng được định nghĩa là được bảo vệ, thì phương thức của lớp con phải được định nghĩa là được bảo vệ hoặc công khai, nhưng không phải là riêng tư. Ngoài ra, loại và số lượng đối số bắt buộc phải giống nhau. Tuy nhiên, các lớp con có thể có thêm các đối số tùy chọn Vì vậy, khi một lớp con được kế thừa từ một lớp trừu tượng, chúng ta có các quy tắc sau
Hãy xem một ví dụ Ví dụ// Lớp cha // Các lớp con class Volvo mở rộng Car { class Citroen extends Car { // Tạo đối tượng từ các lớp con $volvo = new volvo("Volvo"); $citroen = new citroen("Citroen"); Ví dụ giải thíchCác lớp Audi, Volvo và Citroen được kế thừa từ lớp Car. Điều này có nghĩa là các lớp Audi, Volvo và Citroen có thể sử dụng thuộc tính $name công khai cũng như phương thức __construct() công khai từ lớp Car do tính kế thừa Tuy nhiên, intro() là một phương thức trừu tượng nên được định nghĩa trong tất cả các lớp con và chúng sẽ trả về một chuỗi PHP - Các ví dụ về lớp trừu tượng khácHãy xem một ví dụ khác trong đó phương thức trừu tượng có một đối số và lớp con có hai đối số tùy chọn không được định nghĩa trong phương thức trừu tượng của cha mẹ Chúng là gì, cách sử dụng chúng và chúng khác với các giao diện, lớp trừu tượng và hàm toàn cục như thế nào. Tất cả với rất nhiều ví dụ Bắt đầu nào nội dung
Đặc điểm trong PHP là gì?Một đặc điểm là một cấu trúc PHP cho phép bạn sử dụng lại cùng một mã trong các lớp khác nhau Bạn có thể xác định một đặc điểm bằng cú pháp sau
Các đặc điểm có thể chứa các phương thức (như sayHello()) và các thuộc tính (như $name) Các đặc điểm cũng hỗ trợ các toán tử hiển thị (công khai, được bảo vệ và riêng tư), các phương thức và thuộc tính tĩnh cũng như các toán tử lớp như cha mẹ. , bản thân. và $này Các lớp PHP có thể sử dụng các đặc điểm và bao gồm mã của các đặc điểm Để làm cho một lớp sử dụng một đặc điểm, bạn cần sử dụng từ khóa Ví dụ
Trong ví dụ trên, lớp MyClass sử dụng đặc điểm SayGreeting. Bằng cách đó, nó giống như tất cả mã bên trong đặc điểm được sao chép vào lớp Lớp bây giờ có phương thức sayHello() cũng như thuộc tính $name
Cách sử dụng Đặc điểmTóm lại, một đặc điểm là một cấu trúc ngăn chặn sự trùng lặp mã trong các lớp Các lớp khác nhau có thể sử dụng cùng một đặc điểm và bao gồm các phương thức và thuộc tính của đặc điểm đó Đặc điểm có một số điểm tương đồng với giao diện và với các lớp trừu tượng Chúng cũng tương tự như các tập lệnh “bao gồm” có chứa các hàm toàn cục Nhưng các đặc điểm cũng có những điểm khác biệt quan trọng khiến chúng trở nên độc nhất Hãy xem cái nào chi tiết Đặc điểm vs Giao diện Giao diện là một cấu trúc OOP cho phép bạn chia sẻ cùng một bộ chức năng giữa các lớp khác nhau Bạn có thể tìm thấy lời giải thích chuyên sâu về các giao diện PHP trong hướng dẫn này Các giao diện cụ thể hơn các đặc điểm, bởi vì chúng chỉ có thể chứa các phương thức trừu tượng Tùy thuộc vào lớp triển khai giao diện để thực sự triển khai các phương thức Với các giao diện, hoàn toàn không có việc sử dụng lại mã vì mọi lớp phải thực hiện các phương thức Mặt khác, các đặc điểm có thể cung cấp các phương thức được triển khai đầy đủ, trên các thuộc tính và toán tử lớp Các lớp sử dụng đặc điểm có thể sử dụng lại tất cả mã riêng của đặc điểm mà không có sự trùng lặp mã nào Đặc điểm vs Lớp trừu tượng Cả hai đặc điểm và các lớp trừu tượng có thể bao gồm các phương thức, trừu tượng hoặc được triển khai đầy đủ Tuy nhiên, nếu bạn muốn sử dụng các phương thức từ một lớp trừu tượng sang một lớp khác, bạn phải mở rộng lớp trừu tượng Bạn có thể tìm thấy lời giải thích chuyên sâu về các lớp trừu tượng PHP trong hướng dẫn này Nếu bạn muốn sử dụng các phương thức từ một lớp trừu tượng, bạn phải thiết lập quan hệ thừa kế với lớp của mình. Đây không phải lúc nào cũng là điều bạn muốn Hơn nữa, PHP không hỗ trợ đa kế thừa nên bạn không thể mở rộng từ nhiều hơn một lớp Điều này làm cho không thể định nghĩa các tập hàm khác nhau trong các lớp trừu tượng khác nhau và sau đó mở rộng từ chúng để tạo các kết hợp khác nhau Đặc điểm giải quyết cả hai vấn đề
Đặc điểm so với Tập lệnh bao gồm với Chức năng toàn cầu Tập lệnh “Bao gồm” chứa các hàm PHP. Nếu bạn cần các hàm đó trong tập lệnh PHP khác, bạn chỉ cần đưa tập lệnh đó vào Đặc điểm cung cấp một giải pháp tương tự. Trên thực tế, mục đích chính của các đặc điểm là xác định một số mã một lần và sau đó sử dụng nó trong các lớp khác nhau Tuy nhiên, có ba điểm khác biệt chính giữa các đặc điểm và chức năng toàn cục.
Đặc điểm có thể chứa gì?Các đặc điểm PHP có thể chứa nhiều phần tử của một lớp PHP Bao gồm
Ví dụ
Các đặc điểm cũng hỗ trợ các phương thức trừu tượng Các phương thức trừu tượng phải được triển khai bởi lớp sử dụng đặc điểm
Đặc điểm cũng có thể sử dụng các đặc điểm khác Trong trường hợp này, tất cả mã từ các đặc điểm đã sử dụng được đưa vào đặc điểm đó, sau đó vào các lớp sử dụng đặc điểm đó Ví dụ
phương pháp ưu tiênKhi bạn sử dụng một đặc điểm trong lớp của mình, lớp sẽ nhận các phương thức từ đặc điểm đó Bạn có thể ghi đè lên một phương thức đặc điểm bằng cách xác định lại nó trong lớp. Trong trường hợp này, phương thức riêng của lớp được ưu tiên hơn phương thức của đặc điểm Ví dụ
Nếu lớp của bạn mở rộng một lớp cơ sở, các phương thức từ các đặc điểm được ưu tiên hơn các phương thức của lớp cơ sở có cùng tên Tuy nhiên, bạn có thể truy cập các phương thức của lớp cơ sở bằng cách sử dụng lớp cha. nhà điều hành Ví dụ ________số 8Phương pháp răng cưa và xung độtĐặc điểm PHP hỗ trợ răng cưa Khi bạn sử dụng một đặc điểm trong một lớp, bạn có thể đặt bí danh cho phương thức của một đặc điểm để thay đổi tên và mức độ hiển thị của nó Điều này được thực hiện bằng cách sử dụng từ khóa as Ví dụ
xung đột Nếu bạn sử dụng nhiều đặc điểm hơn trong cùng một lớp và một phương thức có cùng tên tồn tại trong nhiều đặc điểm, thì bạn có xung đột PHP không biết nên sử dụng phương thức nào và bạn phải giải quyết xung đột một cách rõ ràng Để làm điều đó, bạn phải chọn phương pháp nào sẽ giữ lại bằng cách sử dụng từ khóa insteadof Ví dụ 0Bạn vẫn có thể truy cập phương thức ẩn bằng cách sử dụng răng cưa Như thế này 1Đặc điểm thực hành tốtDưới đây là 2 lời khuyên để sử dụng các đặc điểm một cách chính xác 1. Không sử dụng các đặc điểm thay vì giao diện Khi bạn đã quen thuộc với các đặc điểm, chúng sẽ trở nên rất dễ sử dụng. Và bạn có thể bị cám dỗ để lạm dụng chúng Các cấu trúc khác, chẳng hạn như giao diện và lớp trừu tượng, là lựa chọn tốt hơn trong một số trường hợp Chẳng hạn, các giao diện sẽ tốt hơn khi bạn muốn chia sẻ một tập hợp các chức năng giữa các lớp tương tự. Và các lớp trừu tượng là lựa chọn tốt hơn khi bạn muốn thực thi việc gõ Vì vậy, hãy chắc chắn sử dụng cấu trúc tốt nhất ngay cả khi các đặc điểm trông đơn giản hơn và nhanh hơn để thực hiện 2. Giữ đặc điểm của bạn nhỏ Tốt hơn là giữ các đặc điểm nhỏ và tập trung vào một bộ chức năng duy nhất. Điều này làm cho việc sử dụng chúng trong các lớp học của bạn dễ dàng hơn và duy trì chúng Nếu bạn muốn tạo một bộ chức năng đầy đủ hơn, bạn có thể tạo một đặc điểm sử dụng các đặc điểm khác Ví dụ 2Điều này giúp bạn linh hoạt hơn trong việc sử dụng các đặc điểm trong các lớp học của mình Ví dụ 3Phần kết luậnBạn đã thấy cách PHP Traits là một cách để sử dụng lại cùng một mã trong các lớp khác nhau Bạn cũng đã học cách thức và thời điểm sử dụng chúng cũng như cách chúng so sánh với các giao diện, lớp trừu tượng và tập lệnh “bao gồm” Bạn đã biết về đặc điểm? Thuộc tính lớp có thể trừu tượng trong PHP 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; .
Chúng ta có thể khởi tạo đặc điểm trong PHP không?Không thể tự khởi tạo một Đặc điểm . Nó là một bổ sung cho sự kế thừa truyền thống và cho phép cấu thành hành vi theo chiều ngang; .
Cách gọi phương thức trừu tượng trong PHP?Để khai báo một lớp là trừu tượng, chúng ta cần thêm từ khóa trừu tượng vào trước tên của lớp. Chúng tôi đặt các phương thức trừu tượng cũng được khai báo bằng 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.
Làm cách nào để ghi đè lớp trừu tượng trong PHP?Quy tắc Trừu tượng hóa
. Các đối số cho các phương thức phải giống như phương thức trừu tượng. Chẳng hạn, trong ví dụ trên, myMethod2 có hai đối số. $name và $age. Phương thức myMethod2 trong lớp con phải có cùng đối số. The child class should override (redeclare) all the abstract methods. The arguments for methods should be the same as the abstract method. For instance, in the above example, myMethod2 has two arguments: $name and $age . The method myMethod2 in the child class should have the same arguments. |