Làm cách nào chúng ta có thể gọi phương thức của lớp cha trong phần ghi đè trong php?
Từ đa hình có nghĩa là “có nhiều dạng”. Tính đa hình cho phép một lớp con định nghĩa phiên bản thành viên của chính nó, phiên bản này cũng được định nghĩa bởi lớp cha của nó. Chúng tôi thay đổi việc thực hiện một thành viên kế thừa Show
Nói một cách đơn giản, chúng tôi ghi đè bất kỳ phương thức nào tồn tại trong lớp cha bằng chức năng của riêng chúng tôi trong lớp con Để ghi đè một phương thức trong lớp cha, chúng ta chỉ cần tạo một phương thức ở lớp con có cùng tên
Chúng ta không thể ghi đè một phương thức trong lớp cha nếu phương thức hoặc chính lớp đó được đánh dấu là cuối cùng. Chúng ta tìm hiểu thêm về final modifier trong bài hướng dẫn encapsulation
Khi chúng ta chạy ví dụ trên, mỗi lớp con hiển thị một thông báo khác nhau khi phương thức move() của chúng được gọi vì chúng ta ghi đè lên nó trong cả hai lớp Nếu chúng ta ghi đè một phương thức cha trong một lớp, chúng ta vẫn có thể truy cập phương thức gốc ban đầu. Để làm điều này, chúng ta phải sử dụng toán tử phân giải phạm vi, còn được gọi là dấu hai chấm (. ) Chúng tôi đã trình bày ngắn gọn về dấu hai chấm khi chúng tôi giải thích cách truy cập trực tiếp các thành viên của lớp bằng dấu hai chấm Ví dụ, giả sử chúng ta không muốn ghi đè tất cả chức năng trong một phương thức của lớp cha, chúng ta chỉ muốn thêm vào nó Chúng ta có thể ghi đè phương thức, triển khai chức năng của riêng mình, sau đó gọi phương thức cha bên trong phương thức con của chúng ta. Điều này cho phép phương thức con chứa chức năng của phương thức cha, cùng với chức năng tùy chỉnh của chúng tôi
Trong ví dụ trên, chúng ta ghi đè phương thức () trong lớp con, cung cấp hành vi của riêng chúng ta cho nó. Chúng ta cũng gọi phương thức() từ lớp cha với dấu hai chấm (. ), sẽ thực thi hành vi của phương thức gốc ban đầu Bằng cách này, chúng tôi đã tùy chỉnh chức năng của mình trên chức năng ban đầu Chúng tôi không phải chỉ định tên lớp một cách rõ ràng. Chúng ta có thể thay tên lớp bằng từ khóa parent
Lớp trừu tượng & Giao diệnCả lớp trừu tượng và giao diện đều đa hình. Chúng tôi đề cập đến các lớp trừu tượng trong bài học về đóng gói và giao diện trong bài học về giao diện Lớp con sẽ kế thừa tất cả các thuộc tính và phương thức public và protected từ lớp cha. Ngoài ra, nó có thể có các thuộc tính và phương thức riêng Một lớp kế thừa được định nghĩa bằng cách sử dụng từ khóa Hãy xem một ví dụ Ví dụclass Fruit { // Strawberry được kế thừa từ Fruit Ví dụ giải thíchLớp Strawberry được kế thừa từ lớp Fruit Điều này có nghĩa là lớp Strawberry có thể sử dụng các thuộc tính public $name và $color cũng như các phương thức public __construct() và intro() từ lớp Fruit do tính kế thừa Lớp Strawberry cũng có phương thức riêng. thông điệp() PHP - Kế thừa và Công cụ sửa đổi quyền truy cập được bảo vệTrong chương trước chúng ta đã biết rằng có thể truy cập các thuộc tính hoặc phương thức của Hãy xem một ví dụ Ví dụclass Fruit { class Strawberry extends Fruit { // Thử gọi cả ba phương thức từ lớp bên ngoài Trong ví dụ trên, chúng ta thấy rằng nếu chúng ta cố gọi một phương thức Hãy xem một ví dụ khác Ví dụclass Fruit { class Strawberry extends Fruit { $strawberry = new Strawberry("Dâu", "đỏ"); . __construct() là công khai Trong ví dụ trên, chúng tôi thấy rằng tất cả đều hoạt động tốt. Đó là bởi vì chúng ta gọi phương thức PHP - Ghi đè các phương thức kế thừaCác phương thức kế thừa có thể được ghi đè bằng cách xác định lại các phương thức (sử dụng cùng tên) trong lớp con Nhìn vào ví dụ dưới đây. Các phương thức __construct() và intro() trong lớp con (Strawberry) sẽ ghi đè lên các phương thức __construct() và intro() trong lớp cha (Fruit) Làm cách nào để ghi đè phương thức của lớp cha trong PHP?Trong ghi đè hàm, cả lớp cha và lớp con phải có cùng tên hàm và số đối số . Nó được sử dụng để thay thế phương thức cha trong lớp con. Mục đích của việc ghi đè là thay đổi hành vi của phương thức lớp cha. Hai phương thức có cùng tên và cùng tham số được gọi là ghi đè.
Làm cách nào để gọi một phương thức của lớp cha trong PHP?Để chạy hàm tạo cha, gọi hàm cha. Cần có __construct() bên trong hàm tạo con .
Làm thế nào bạn có thể gọi một lớp cha của một phương thức ghi đè trong một lớp con?Siêu từ khóa trong Ghi đè phương thức. Từ khóa super được sử dụng để gọi phương thức/hàm tạo của lớp cha.
Chúng ta có thể gọi phương thức của lớp cha với đối tượng của lớp con mà không ghi đè không?Chúng ta có thể gọi phương thức của lớp cha với đối tượng của lớp con mà không cần ghi đè không? . Nhưng mà; . If you override a parent method in its child, child objects will always use the overridden version. But; you can use the keyword super to call the parent method, inside the body of the child method. |