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