alexandrheathen

Работа с классами, наследование и инкапсуляция

Jan 29th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. <?php
  2.  
  3. class Person {
  4.     protected $name;
  5.     protected $last_name;
  6.     protected $age;
  7.  
  8.     public function __construct ( $name, $last_name, $age ) {
  9.         $this->name      = $name;
  10.         $this->last_name = $last_name;
  11.         $this->age       = $age;
  12.     }
  13.  
  14.     /**
  15.      * @param mixed $age
  16.      */
  17.     public function setAge ( $age ) {
  18.         $this->age = $age;
  19.     }
  20.  
  21.     /**
  22.      * @return mixed
  23.      */
  24.     public function getAge () {
  25.         return $this->age;
  26.     }
  27.  
  28.     public function greet () {
  29.         return "Name: $this->name, Last Name: $this->last_name, Age: $this->age;";
  30.     }
  31. }
  32.  
  33. class Student extends Person {
  34.     protected $course;
  35.  
  36.     /**
  37.      * Student constructor.
  38.      * @param $name
  39.      * @param $last_name
  40.      * @param $age
  41.      * @param $course
  42.      */
  43.     public function __construct ( $name, $last_name, $age, $course ) {
  44.         parent::__construct($name, $last_name, $age);
  45.         $this->course = $course;
  46.     }
  47.  
  48.     public function greet () {
  49.         return parent::greet() . "\nCourse: $this->course;";
  50.     }
  51. }
  52.  
  53. class Teacher extends Person {
  54.     protected $dep;
  55.  
  56.     public function __construct ( $name, $last_name, $age, $dep ) {
  57.         parent::__construct($name, $last_name, $age);
  58.         $this->dep;
  59.     }
  60.  
  61.     public function greet () {
  62.         return parent::greet() . "\nDepartment: $this->dep;";
  63.     }
  64. }
  65.  
  66. $person = new Person('Alex', 'Heathen', 15);
  67. //$stud = new Student('Alex', 'Heathen', 15, 2);
  68. //$teacher = new Teacher('Alex', 'Heathen', 15, 'Math');
  69. $person->setAge(10);
  70. echo $person->getAge()."\n";
Advertisement
Add Comment
Please, Sign In to add comment