Hướng dẫn what is method overriding and method overloading in php? - ghi đè phương thức và ghi đè phương thức trong php là gì?

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc
    Function Overloading: Function overloading contains same function name and that function performs different task according to number of arguments. For example, find the area of certain shapes where radius are given then it should return area of circle if height and width are given then it should give area of rectangle and others. Like other OOP languages function overloading can not be done by native approach. In PHP function overloading is done with the help of magic function __call(). This function takes function name and arguments. 
    Example: 
     

    Bàn luận

    <?php

    Quá tải chức năng và ghi đè là tính năng OOPS trong PHP. Trong quá tải chức năng, nhiều hơn một hàm có thể có cùng một chữ ký phương thức nhưng số lượng đối số khác nhau. Nhưng trong trường hợp ghi đè chức năng, nhiều hàm sẽ có cùng chữ ký phương thức và số lượng đối số. & NBSP; quá tải chức năng: quá tải chức năng chứa cùng tên hàm và hàm đó thực hiện tác vụ khác nhau theo số lượng đối số. Ví dụ: tìm diện tích của các hình dạng nhất định trong đó bán kính được đưa ra thì nó sẽ quay lại diện tích của vòng tròn nếu chiều cao và chiều rộng được đưa ra thì nó sẽ cho diện tích hình chữ nhật và các khu vực khác. Giống như các ngôn ngữ OOP khác không thể thực hiện được bằng cách tiếp cận bản địa. Trong quá tải chức năng PHP được thực hiện với sự trợ giúp của hàm ma thuật __call (). Hàm này lấy tên chức năng và đối số. & Nbsp; ví dụ: & nbsp; & nbsp;

    PHP

    class shape {

        function __call(9.4264809.4264819.4264829.426483

    9.4264849.4264859.426486____10 9.4264889.4264899.426483

    <?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>1<?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>2 9.426486<?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>49.426486__12

    <?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>8<?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>9 Base class function! Base class function declared final! Derived class function! Base class function declared final!0

    Base class function! Base class function declared final! Derived class function! Base class function declared final!1Base class function! Base class function declared final! Derived class function! Base class function declared final!2 Base class function! Base class function declared final! Derived class function! Base class function declared final!39.426482Base class function! Base class function declared final! Derived class function! Base class function declared final!5

    <?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>1<?php6

    9.426484<?php6

        <?php6

    <?php6

    <?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>8<?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>9 Base class function! Base class function declared final! Derived class function! Base class function declared final!8

    class69.426486class2class9

    Base class function! Base class function declared final! Derived class function! Base class function declared final!1Base class function! Base class function declared final! Derived class function! Base class function declared final!2 9.426482<?php29.426482<?php4

    class2 class3class4 class5

    shape {7

    class6 shape {1shape {2 Function overriding is same as other OOPs programming languages. In function overriding, both parent and child classes should have same function name with and number of arguments. It is used to replace parent method in child class. The purpose of overriding is to change the behavior of parent class method. The two methods with the same name and same parameter is called overriding.
    Example: 
     

    Bàn luận

    <?php

    Quá tải chức năng và ghi đè là tính năng OOPS trong PHP. Trong quá tải chức năng, nhiều hơn một hàm có thể có cùng một chữ ký phương thức nhưng số lượng đối số khác nhau. Nhưng trong trường hợp ghi đè chức năng, nhiều hàm sẽ có cùng chữ ký phương thức và số lượng đối số. & NBSP; quá tải chức năng: quá tải chức năng chứa cùng tên hàm và hàm đó thực hiện tác vụ khác nhau theo số lượng đối số. Ví dụ: tìm diện tích của các hình dạng nhất định trong đó bán kính được đưa ra thì nó sẽ quay lại diện tích của vòng tròn nếu chiều cao và chiều rộng được đưa ra thì nó sẽ cho diện tích hình chữ nhật và các khu vực khác. Giống như các ngôn ngữ OOP khác không thể thực hiện được bằng cách tiếp cận bản địa. Trong quá tải chức năng PHP được thực hiện với sự trợ giúp của hàm ma thuật __call (). Hàm này lấy tên chức năng và đối số. & Nbsp; ví dụ: & nbsp; & nbsp;

    PHP

    class shape {

        <?php6

    <?php6

        function __call(9.4264809.4264819.4264829.426483

    PHP

    class shape {

        <?php6

    <?php6

        function __call(9.4264809.4264819.4264829.426483

    9.4264849.4264859.426486____10 9.4264889.4264899.426483

    __call(59.4264804

    __call(99.4264804

    shape {7

    <?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>1<?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>2 9.426486<?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>49.426486__12


    Chức năng quá tải trong PHP

    Quá tải chức năng là một tính năng cho phép tạo ra một số phương thức có tên tương tự hoạt động khác nhau trong loại tham số đầu vào mà nó chấp nhận làm đối số.

    Thí dụ

    Bây giờ chúng tôi thấy một ví dụ để thực hiện quá tải chức năng -

    & nbsp; bản demo trực tiếp

    <?php    class Shape {       const PI = 3.142 ;       function __call($name,$arg){          if($name == 'area')             switch(count($arg)){                case 0 : return 0 ;                case 1 : return self::PI * $arg[0] ;                case 2 : return $arg[0] * $arg[1];             }       }    }    $circle = new Shape();    echo $circle->area(3);    $rect = new Shape();    echo $rect->area(8,6); ?>

    Đầu ra

    Điều này sẽ tạo ra đầu ra sau -

    9.42648

    Chức năng ghi đè trong PHP

    Trong chức năng ghi đè, các lớp cha và con có cùng tên hàm và số lượng đối số

    Thí dụ

    Bây giờ chúng tôi thấy một ví dụ để thực hiện quá tải chức năng -

    & nbsp; bản demo trực tiếp

    <?php    class Base {       function display() {          echo "
    Base class function declared final!";       }       function demo() {          echo "
    Base class function!";       }    }    class Derived extends Base {       function demo() {          echo "
    Derived class function!";       }    }    $ob = new Base;    $ob->demo();    $ob->display();    $ob2 = new Derived;    $ob2->demo();    $ob2->display(); ?>

    Đầu ra

    Điều này sẽ tạo ra đầu ra sau -

    Base class function! Base class function declared final! Derived class function! Base class function declared final!

    9.42648

    • Chức năng ghi đè trong PHP
    • Trong chức năng ghi đè, các lớp cha và con có cùng tên hàm và số lượng đối số
    • Bây giờ cho chúng tôi xem một ví dụ để thực hiện ghi đè chức năng -
    • Cập nhật vào ngày 02 tháng 1 năm 2020 06:36:33
    • Câu hỏi và câu trả lời liên quan
    • Sự khác biệt giữa quá tải chức năng và ghi đè trong C ++
    • Điều gì đang vượt qua và quá tải dưới tính đa hình trong Java?
    • Quá tải PHP
    • Phương thức quá tải phương thức V/S ghi đè trong Java
    • Chức năng quá tải trong JavaScript là gì?
    • Sự khác biệt giữa việc ghi đè chức năng và ẩn phương thức trong C#là gì?
    • Ghi đè trong C#
    • STR_STARTS_WITH và STR_ENDS_WITH trong Php 8
    • Tăng ++ và giảm - Toán tử quá tải trong C ++
    • Phương pháp quá tải và loại quảng cáo trong Java
    • Phương pháp quá tải và lỗi null trong java

    Phương pháp quá tải và ghi đè phương thức là gì?

    Quá tải phương pháp là một loại đa hình tĩnh. Trong quá tải phương thức, chúng ta có thể xác định nhiều phương thức có cùng tên nhưng với các tham số khác nhau. Phương pháp ghi đè là một cơ chế để đạt được tính đa hình trong đó siêu lớp và lớp con có cùng phương pháp, bao gồm các tham số và chữ ký.

    Php có hỗ trợ quá tải và ghi đè phương pháp không?

    PHP không hỗ trợ quá tải phương pháp.Trong trường hợp bạn chưa bao giờ nghe nói về quá tải phương thức, điều đó có nghĩa là ngôn ngữ có thể chọn một phương thức dựa trên các tham số bạn đang sử dụng để gọi nó.Điều này là có thể trong nhiều ngôn ngữ lập trình khác như Java, C ++.. In case you've never heard of method overloading, it means that the language can pick a method based on which parameters you're using to call it. This is possible in many other programming languages like Java, C++.

    Sự khác biệt giữa quá tải phương thức và ghi đè phương thức giải thích với các ví dụ là gì?

    Quá tải phương pháp là một đa hình thời gian biên dịch. Ghi đè là một đa hình thời gian chạy.Nó giúp tăng khả năng đọc của chương trình.Nó được sử dụng để cấp cho việc triển khai cụ thể của phương thức đã được cung cấp bởi lớp cha hoặc siêu lớp. Method overriding is a run-time polymorphism. It helps to increase the readability of the program. It is used to grant the specific implementation of the method which is already provided by its parent class or superclass.

    Sự khác biệt giữa quá tải và quá tải là gì?

    Quá tải phương pháp đượ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 thực hiện cụ thể của phương thức đã được cung cấp bởi siêu lớp của nó.Quá tải phương thức được thực hiện trong lớp.

    Chủ đề