Автор оригинала: David Wong.
Эта статья иллюстрирует операцию расширения родительского класса (подкласс перезагрузки родительского класса) в объектно-ориентированном программировании PHP. Поделитесь для вашей справки следующим образом:
В PHP мы столкнемся с ситуацией, когда подкласс наследует родительский класс, но ему необходимо расширить атрибуты и методы родительского класса. В это время подкласс может переопределять атрибуты и методы с тем же именем, что и родительский класс, но если в методе родительского класса содержится больше содержимого, например сотни тысяч строк кода. На этом этапе вам просто нужно использовать ” Имя родительского класса: Метод “Или” Родительский:: Метод “Для вызова переопределенного метода в родительском классе, есть Перезагрузка родительского класса Затем добавьте инструкцию, которую необходимо расширить.
Способ перезаписи
name =$name;
}
// This defines a method with the same name as that in the parent class, which overrides and overrides the speech method in the parent class.
public function say(){
Echo: "My name is". $this - > name.""25 years old this year";
}
}
?>Способ перезаписи и Разрешение на доступ
Когда подкласс переопределяет метод родительского класса, следует отметить, что права доступа метода, переопределенного в подклассе, не должны быть ниже, чем у метода, переопределенного родительским классом. Например, права доступа методов в родительском классе защищены Разрешения методов, переопределенные в подклассах, являются защищенными или публичное 。 Если метод родительского класса является общедоступным Единственный способ переопределить разрешения в подклассах-это public . Одним словом, при переопределении метода родительского класса в подклассе он должен быть выше разрешения метода, охватываемого родительским классом.
Количество параметров при переписывании
Подклассы могут иметь другое количество параметров, чем их родительские классы. В следующем методе построения добавляется дополнительный параметр $age.
name =$name;
$this->age =$age;
}
public function say(){
Echo: $this - > name. "$this - > age."$this - > age. "
}
}
?>В приведенном выше примере мы реализовали расширение “метод”, покрыв его. Однако, хотя это решает проблему, о которой мы упоминали выше, в реальной разработке метод не может иметь одного кода или нескольких кодов, таких как метод “say ()” в классе “Person”, который имеет 100 кодов, если мы хотим покрыть метод исходной функцией и добавить немного больше. Функция, нам нужно переписать исходный код 100 один раз, плюс несколько расширенных кодов, что хорошо, и в некоторых случаях метод в родительском классе не может видеть исходный код, как вы переписываете исходный код в это время? У нас также есть решение, то есть в методе подкласса мы можем вызвать метод, переопределенный в родительском классе. То есть мы можем вызвать метод, переопределенный в методе подкласса двумя методами, то есть взять исходную функцию переопределенного метода и добавить одну из наших собственных функций.
Один из них-использовать родительский класс.” Имя класса: ” Для вызова переопределенного метода в родительском классе;
Один из них заключается в использовании” parent:: “. Квадратный тест вызывает переопределенный метод в родительском классе.
Расширение методов
age =$age;
}
public function say(){
parent::say();
Echo, this year. $this - > age. "old";
}
}
?>Все, что описано выше, это Перезагрузить Атрибуты и методы родительского класса не перегружены в реальном смысле. Можно только сказать, что подкласс расширяет родительский класс. В php также есть слово перегрузка, но оно отличается от перегрузки в общем языке, ориентированном на язык.
Ссылка на перегрузку PHP: объектно-ориентированная перегрузка PHP
Моделирование перегрузки метода в общих объектно-ориентированных языках в php, пожалуйста, обратитесь к: PHP объектно-ориентированный _симуляция перегрузки метода в общих объектно-ориентированных языках
Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы PHP и использования операторов, Краткое описание использования строк Php и данных php+mysql. Введение в Библиотечные операции и Краткое описание общих навыков работы с базами данных на PHP
Я надеюсь, что эта статья будет полезна для разработки программ на PHP для всех.
Оригинал: “https://developpaper.com/php-object-oriented-programming-subclass-extended-parent-class-subclass-reloaded-parent-class-operation-detailed/”