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.

PHP - mai multe exemple de clase abstracte

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");
?>