Quá tải và ghi đè trong PHP là gì?
Nạp chồng và ghi đè hàm là đặc điểm nổi bật của lập trình hướng đối tượng trong PHP. Nạp chồng hàm có nghĩa là nhiều hàm có cùng tên nhưng khác tham số. Nhưng trong trường hợp ghi đè hàm, nhiều hàm sẽ có cùng chữ ký phương thức và số lượng đối số Show
PHP không hỗ trợ nạp chồng hàm trực tiếp như các ngôn ngữ khác như C++, JAVA, v.v. Nhưng chúng ta có thể giải quyết vấn đề này bằng cách sử dụng phương thức __call() kỳ diệu của PHP. Vì vậy, hãy xem cách quá tải và ghi đè hoạt động trong PHP Nạp chồng hàm trong PHPNạp chồng hàm chứa cùng một tên hàm và hàm này thực hiện một tác vụ khác tùy thuộc vào số lượng đối số Hãy thảo luận về cách đạt được quá tải trong PHP. Trong trường hợp của PHP, chúng ta cần sử dụng các phương thức ma thuật __call() của PHP để đạt được nạp chồng phương thức. Trong PHP, nạp chồng có nghĩa là hành vi của phương thức thay đổi linh hoạt tùy thuộc vào các tham số đầu vào. Trong hướng dẫn này, chúng ta sẽ hiểu những nhận thức này. Hãy cùng phân tích phương thức __call() __gọi()Nếu một lớp thực hiện __call(), thì nếu một đối tượng của lớp đó được gọi bằng một phương thức không tồn tại, thì __call() sẽ được gọi thay vì phương thức đó Thí dụ
đầu ra. Điều này sẽ tạo ra đầu ra sau
Ghi đè hàm trong PHPGhi đè hàm trong PHP khá dễ dàng. Ghi đè là quá trình sửa đổi một cái gì đó của phương thức kế thừa. Có nghĩa là trong ghi đè hàm, lớp cha và lớp con có cùng tên hàm và số đối số Trong ví dụ dưới đây, bạn thấy hai lớp Cơ sở và Dẫn xuất. Cas có nguồn gốc kéo dài đến Cơ sở. Điều đó có nghĩa là Derived có thể truy cập lớp cha. Ở đây bạn thấy lớp cha có hàm demo() và lớp con cũng có hàm demo() có cùng tên và cùng đối số. Ở đây bạn thấy tình huống ghi đè chức năng trong đó lớp con ghi đè chức năng của lớp cơ sở
đầu ra. Điều này sẽ tạo ra đầu ra sau
Thêm câu hỏi phỏng vấn
Phần kết luậnTrong bài viết này, chúng tôi hiểu chức năng nạp chồng và ghi đè với sự trợ giúp của ví dụ. nếu bạn có bất kỳ vấn đề nào để hiểu xin vui lòng bình luận, tôi sẽ cố gắng trả lời càng sớm càng tốt Phương pháp lập trình hướng đối tượng, thường được viết tắt là OOPS, là nền tảng của tất cả các ngôn ngữ lập trình hiện đại. Các ngôn ngữ này tuân thủ và triển khai các khái niệm về lập trình hướng đối tượng với rất ít loại trừ. Hai trong số các khái niệm đó rất quan trọng - nạp chồng phương thức và ghi đè phương thức Quá tải phương thức là gì? Nạp chồng phương thức là khái niệm định nghĩa hai hoặc nhiều phương thức có cùng tên nhưng chữ ký khác nhau. Một trong hai phương thức này được gọi dựa trên số lượng tham số được truyền Ghi đè phương thức là gì? Bắt đầu khóa học phát triển phần mềm miễn phí của bạn Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác Ghi đè phương thức là khái niệm xác định hai hoặc nhiều phương thức giống hệt nhau, có cùng tên và chữ ký. Một trong hai phương pháp này được gọi dựa trên đối tượng gọi Gói phát triển phần mềm tất cả trong một(hơn 600 khóa học, hơn 50 dự án) Giá bán Hơn 600 khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời So sánh trực tiếp giữa nạp chồng phương thức và ghi đè phương thức (Infographics)Dưới đây là 10 điểm khác biệt hàng đầu giữa Nạp chồng Phương thức và Ghi đè Phương thức Sự khác biệt chính giữa Nạp chồng phương thức và Ghi đè phương thứcSau đây là những điểm khác biệt chính giữa Nạp chồng phương thức và Ghi đè phương thức
Bảng so sánh nạp chồng phương thức và ghi đè phương thứcDưới đây là bảng so sánh cho thấy sự tương đồng giữa Nạp chồng Phương thức và Ghi đè Phương thức Cơ sở so sánh giữa Method Overloading và Method OverridingMethod OverloadingMethod OverridingDefinitionMethod Overloading là khái niệm định nghĩa hai hoặc nhiều phương thức có cùng tên nhưng khác chữ ký. Ghi đè phương thức là khái niệm xác định hai hoặc nhiều phương thức giống hệt nhau, có cùng tên và chữ ký. Thời gian biên dịch ràng buộc phương thức. Việc ràng buộc các định nghĩa phương thức quá tải với các lệnh gọi phương thức tương ứng được thực hiện tại thời điểm biên dịch. Thời gian chạy. Việc ràng buộc các định nghĩa phương thức bị ghi đè với các lệnh gọi phương thức của chúng được thực hiện trong thời gian chạy. Loại liên kết phương thức Liên kết tĩnh Liên kết động Hạn chế lớp Nạp chồng phương thức có thể đạt được trong cùng một lớp hoặc trong các lớp khác nhau. Không hạn chế. Ghi đè phương thức đạt được trong các lớp khác nhau. Các lớp này có quan hệ cha-con. Hạn chế chữ ký Các phương thức quá tải phải khác nhau về chữ ký của chúng. Số lượng tham số hoặc loại tham số hoặc thứ tự tham số phải khác nhau. Các phương thức bị ghi đè có thể có cùng chữ ký, không hạn chế. Hạn chế phương thức tĩnh Phương thức tĩnh có thể bị quá tải. Điều này cho phép một lớp có nhiều hơn một phương thức tĩnh có cùng tên nhưng chữ ký khác nhau. Phương pháp tĩnh không thể được ghi đè. Nếu một lớp con có một phương thức tĩnh có cùng tên và chữ ký với lớp cha, thì nó được coi là một phương thức riêng biệt và không ghi đè lên phương thức của lớp cha. Kiểu trả về của phương thứcKiểu trả về của các phương thức quá tải không quan trọng. Các phương thức bị quá tải có thể có hoặc không có cùng kiểu trả về. Tuy nhiên, các phương thức có cùng tên và chữ ký nhưng chỉ khác nhau về kiểu trả về không thể bị quá tải. Các phương thức bị ghi đè có thể có các kiểu trả về cụ thể hơn. Một phương thức của lớp cha có thể trả về một đối tượng của lớp cha và một phương thức của lớp con, ghi đè phương thức của lớp cha, có thể trả về một đối tượng của lớp con. Sử dụng quá tải được thực hiện để triển khai các logic phương thức khác nhau trong khi vẫn giữ nguyên tên phương thức. Nó chủ yếu được thực hiện để viết một triển khai cụ thể của một phương thức được kế thừa từ lớp cha. Lợi íchTăng khả năng đọc chương trìnhTăng khả năng sử dụng lại mã. Giúp viết logic mã để xử lý các tình huống cụ thể bằng cách chuyển mã thông thường. Liên quan Khái niệm OOPS Kết hợp chặt chẽ với tính đa hình. Cùng một phương thức có thể thực hiện các hành động khác nhau dựa trên sự khác biệt về tham số. Đan chặt chẽ với một thừa kế. Một lớp con có thể đi chệch khỏi logic cha để xử lý một kịch bản cụ thể trong khi vẫn kế thừa các kịch bản khác Ví dụ về Nạp chồng Phương thức và Ghi đè Phương thức trong JavaSau đây là các ví dụ về Nạp chồng phương thức và Ghi đè phương thức trong Java Ví dụ 1Mã số
đầu ra Ví dụ #2Mã số
đầu ra Ví dụ về trường hợp sử dụng nghiệp vụGiả sử bạn cần triển khai ứng dụng thanh toán cho một doanh nghiệp chấp nhận tất cả các loại thẻ, ngân hàng trực tuyến, ví thanh toán, v.v. Bây giờ, bạn có hai cách để thực hiện điều này
Không phải là cách thứ hai sạch hơn? Hãy tiến thêm một bước để hiểu ghi đè. Hiện nay có rất nhiều nhà cung cấp dịch vụ thẻ như VISA, MasterCard, AmericanExpress, Rupay, v.v. Giả sử tất cả đều sử dụng một cổng thanh toán chung ngoại trừ Rupay có cổng thanh toán riêng. Bây giờ bạn sẽ viết một lớp cha chứa định nghĩa phương thức để chấp nhận thanh toán qua cổng thanh toán chung. Lớp con của Rupay sẽ kế thừa tất cả các tính năng của lớp cha và chỉ ghi đè lên một tính năng - phương thức cổng thanh toán. Xét cho cùng, lớp con chỉ khác ở phương thức cổng thanh toán. Tất cả các tính năng khác, chẳng hạn như số thẻ, mã thông báo bảo mật, v.v. , giống nhau Phần kết luậnNhư vậy, chúng ta đã biết được sự khác biệt cơ bản giữa hai khái niệm cơ bản nhất trong lập trình hướng đối tượng là Overloading và Overriding. Chúng tôi đã viết một ví dụ cơ bản và hiểu một kịch bản kinh doanh thực tế trong đó có thể triển khai quá tải và ghi đè. Cả hai khái niệm đều dễ hiểu về mặt lý thuyết nhưng cần thực hành để áp dụng trong các tình huống thực tế. Do đó, rất nên tạo thói quen sử dụng quá tải và ghi đè càng nhiều càng tốt trong các chương trình của bạn. Điều này sẽ giúp bạn rất nhiều trong việc nắm bắt nó Bài viết được đề xuấtĐây là hướng dẫn về Sự khác biệt giữa Nạp chồng Phương thức và Ghi đè Phương thức. Ở đây chúng tôi thảo luận về Sự khác biệt quan trọng hàng đầu giữa Quá tải và Ghi đè bằng đồ họa thông tin và ví dụ. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm – Quá tải và ghi đè là gì?Quá tải phương thức được sử dụng để tăng khả năng đọc của chương trình. Ghi đè phương thức được sử dụng để cung cấp triển khai cụ thể của phương thức đã được siêu lớp của nó cung cấp. 2) Quá tải phương thức được thực hiện trong lớp
Quá tải trong PHP là gì?Nạp chồng hàm trong PHP được dùng để tạo động các thuộc tính và phương thức . Các thực thể động này được xử lý bằng các phương thức ma thuật có thể được sử dụng trong một lớp cho các loại hành động khác nhau. Nạp chồng hàm chứa cùng một tên hàm và hàm đó thực hiện các tác vụ khác nhau tùy theo số lượng đối số.
PHP có quá tải không?Nạp chồng ¶ Nạp chồng trong PHP cung cấp phương tiện để tự động tạo các thuộc tính và phương thức. Các thực thể động này được xử lý thông qua các phương thức ma thuật mà người ta có thể thiết lập trong một lớp cho các loại hành động khác nhau
Tại sao quá tải không được hỗ trợ trong PHP?Bạn không thể quá tải các hàm PHP. Chữ ký hàm chỉ dựa trên tên của chúng và không bao gồm danh sách đối số, vì vậy bạn không thể có hai hàm có cùng tên . Quá tải phương thức lớp trong PHP khác với nhiều ngôn ngữ khác. PHP sử dụng cùng một từ nhưng nó mô tả một mẫu khác. |