PHP OOP - Clase abstracte. PHP - mai multe exemple de clase abstracte. Metoda abstractă cu un argument. Metoda abstractă cu un argument și clasa copil cu două argumente opționale.
Partajeaza in Google Classroom
Memorator: Descriere video Descarcă PDF
Să ne uităm la un alt exemplu în care metoda abstractă (abstract method) are un argument:
Exemplu:
<?php
abstract class ParentClass {
// Metoda abstractă (abstract method)cu un argument
abstract protected function prefixName($name);
}
class ChildClass extends ParentClass {
public function prefixName($name) {
if ($name == "Ion Popescu") {
$prefix = "Mr.";
} elseif ($name == "Ioana Popescu") {
$prefix = "Mrs.";
} else {
$prefix = "";
}
return "{$prefix} {$name}";
}
}
$class = new ChildClass;
echo $class->prefixName("Ion Popescu");
echo "<br>";
echo $class->prefixName("Ioana Popescu");
?>
Să analizăm un alt exemplu în care metoda abstractă (abstract method) are un argument, iar clasa copil (child class) are două argumente opționale care nu sunt definite în metoda abstractă a părintelui (parent's abstract method):
Exemplu:
<?php
abstract class ParentClass {
// Metoda abstractă (abstract method) cu un argument
abstract protected function prefixName($name);
}
class ChildClass extends ParentClass {
// Clasa copil (child class) poate defini argumente opționale care nu sunt în metoda abstractă a părintelui (parent's abstract method)
public function prefixName($name, $separator = ".", $greet = "Dear") {
if ($name == "Ion Popescu") {
$prefix = "Mr";
} elseif ($name == "Ioana Popescu") {
$prefix = "Mrs";
} else {
$prefix = "";
}
return "{$greet} {$prefix}{$separator} {$name}";
}
}
$class = new ChildClass;
echo $class->prefixName("Ion Popescu");
echo "<br>";
echo $class->prefixName("Ioana Popescu");
?>