Що переважає в PHP?

Переосмислення - це об'єктно-орієнтоване поняття програмування, схоже на таке поняття, як клас, об'єкт, інкапсуляція, поліморфізм, перевантаження тощо в PHP. Переопределення функцій та класів здійснюється, коли створюється метод у похідному класі, який є таким же, як у методу в базовому або батьківському класі. Обидва ці методи мають однакове ім’я та однакову кількість аргументів.

Як працює переоцінка?

  • Переопределення - це поняття, коли похідний клас базового класу виконує ту саму дію, що і базовий клас. Це переосмислення може бути на методах або заняттях. Якщо це метод переосмислює, то ім'я параметрів методу виявляється, що специфікатор доступу є таким же, як у методу батьківського класу. Якщо в реалізації способу в підкласі, похідному від базового класу, не виявлено змін, тоді говориться, що метод підкласу змінив метод базового класу.
  • Припустимо, існує клас під назвою Person, який має власні властивості даних та методи. Це Персона батьківського або базового класу із методом, який називається speak (). Зараз є ще один клас під назвою Employee, який розширює клас Person. Тепер цей клас Employee має власні властивості даних та методи, а також має метод, такий самий, як і у батьківського класу, наприклад.speak ().
  • Цей метод говорить () присутній у базовому класі, а також у похідному класі.
  • Тепер те, що відбувається, коли клас інстанціюється або коли створюється об'єкт, який з методу speak () буде виконаний, тобто, що говорять про базовий клас або говорять про похідний клас, це залежить від об'єкта класу називається.
  • Іншими словами, якщо об’єкт класу Person створений, то метод speak () класу Person викликається і тому виконується. Але якщо об’єкт класу Employee створений, тоді буде виконуватися метод speak () похідного класу, який переосмислює клас speak () батьківського класу.
  • А ось як відбувається переоцінка з прикладом
  • У наведеному нижче прикладі є два класи, базовий клас та похідний клас. Похідний клас розширює базовий клас. Ці класи ініціюються і створюються два об'єкти $ obj1 і $ obj2. $ obj1 - це об'єкт BaseClass, а $ obj2 - об'єкт похідного класу. Ці об'єкти далі викликають методи, оголошені у відповідних класах.
  • Тут ви помітите, що базовий клас та похідний клас мають однаковий метод, званий ABC (). Виконуючи цю програму, ви помітите, що метод ABC () змінив метод базового класу ABC ().

Приклад переосмислення методу

class BaseClass (
public function ABC() (
echo "
In the base class";
)
)
class DerivedClass extends BaseClass (
// override the method ABC() of base class
public function ABC() (
echo "
In the derived class";
)
)
$obj1 = new BaseClass;
$obj1->ABC();
$obj2 = new DerivedClass;
$obj2->ABC();

Вихід:

Перевірка з модифікаторами доступу

Існує три модифікатори доступу.

  1. загальнодоступний: доступний з будь-якої точки програми.
  2. приватне: доступне лише з батьківського класу.
  3. захищено: доступний для базового та похідного класів.

Як ми знаємо, захищений метод доступний з базового класу, а похідний клас він може бути оприлюднений у підкласі, але не приватний, оскільки приватний доступний лише у батьківському класі. Також якщо метод класу має специфікатор доступу як загальнодоступний, метод переосмислення у похідному класі не може бути оголошений приватним та захищеним

Приклад переосмислення методу за допомогою модифікаторів доступу

class BaseClass (
private function ABC() (
echo "
In the base class Method : ABC";
)
protected function XYZ() (
echo "
In the base class Method : XYZ";
)
)
class DerivedClass extends BaseClass (
// overriding with public for wider accessibility
public function ABC() (
echo "
In the derived class Method : ABC";
)
// overriding method
// with more accessibility
public function XYZ() (
echo "
In the derived class Method : XYZ";
)
)
//$obj1 = new BaseClass;
//$obj1->ABC(); //throws fatal error
//$obj1->XYZ(); //throws fatal error
$obj2 = new DerivedClass;
$obj2->ABC();
$obj2->XYZ();

вихід:

Переосмислення кінцевого ключового слова

Заключне ключове слово використовується для класів та методів. Методи та класи, а не змінні можуть бути замінені.

Остаточний метод переосмислення

Коли метод або клас оголошено остаточним, то переосмислення цього методу чи класу не може бути виконане, також успадкування класу не є можливим.

Приклад переосмислення методу за допомогою кінцевого ключового слова

class BaseClass (
// Final method – display
// this cannot be overridden in base class
final function display() (
echo "
In the Base class display function";
)
/// method - ABC
function ABC() (
echo "
In the Base cLass ABC function";
)
)
class DerivedClass extends BaseClass (
function ABC() (
echo "
In the Derived class ABC function";
)
)
$obj1 = new DerivedClass;
$obj1->display();
$obj1->ABC();

Вихід:

Переоцінка останнього класу

Клас, оголошений як остаточний, не може бути успадкований. Крім того, в заключному класі є заключний метод поряд з іншими методами. Але оскільки сам клас оголошений остаточним, немає потреби оголошувати остаточний метод в остаточному класі.

Приклад переосмислення класу за допомогою кінцевого ключового слова

// class declared as final cannot be overridden
final class BaseClass (
// method - ABC
function ABC() (
echo "
In the BaseClass Method ABC function";
)
// Final method - display
function display() (
echo "
In the BaseClass Method display function";
)
)
// here you cannot extend the base class
// as the base class is declared as final
$obj1 = new BaseClass;
$obj1->display();
$obj1->ABC();

Вихід:

Рекомендовані статті

Це посібник щодо переосмислення PHP. Тут ми обговорюємо, що переважає і працює PHP та різні методи разом із зразком коду. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Основні питання інтерв'ю PHP
  2. Переваги PHP
  3. Кар'єра в PHP
  4. Команди PHP
  5. Посібник з переосмислення JavaScript
  6. Як вирішальне функціонування в C ++?
  7. Переосмислення в ООП | Потреба в переоціненні методу
  8. Доступ до модифікаторів у PHP
  9. Перевагу в Java