How to work with inheritance

A superclass

      class Person {
        private $firstName, $lastName, $phone, $email;
        public function __construct($first, $last) {
          $this->firstName = $first;
          $this->lastName = $last;
        } 
        
        public function getFirstName() {
          return $this->firstName; 
        } 
        
        public function setFirstName($value) {
          $this->firstName = $value; 
        }
        
        public function getLastName() { 
          return $this->lastName; 
        } 
        
        public function setLastName($value) { 
          $this->lastName = $value; 
        }

        public function getPhone() { 
          return $this->phone; 
        }

        public function setPhone($value) { 
          $this->phone = $value; 
        }
        
        public function getEmail() {
          return $this->email;
        }
        
        public function setEmail($value) {
          $this->email = $value;
        }
      }
      

A subclass

      class Employee extends Person {
        private $ssn, $hireDate;
        public function __construct($first, $last, $ssn, $hireDate) {
          $this->ssn = $ssn; 
          $this->hireDate = $hireDate; // Call Person constructor to finish initialization
          parent::__construct($first, $last); 
        } 
        public function getSSN() {
          return $this->ssn; }
        }
        public function setSSN($value) {
          $this->ssn = $value;
        }
        public function getHireDate() { 
          return $this->hireDate; 
        }
        public function setHireDate($value) { 
          $this->hireDate = $value; 
        }
      }
      

Code that uses the subclass

      $emp = new Employee('John', 'Doe', '999-14-3456', '8-25-1996'); 
      $emp->setPhone('919-555-4321'); // Inherited from Person Class
      

Description

Back