PHP/Class/Class Inheritance

Материал из Web эксперт
Перейти к: навигация, поиск

Class inheritance in action

<?php
class AbstractClass {
    function abstractFunction() {
        die( "AbstractClass::abstractFunction() is abstract\n" );
    }
}
class ConcreteClass extends AbstractClass {}
$test = new ConcreteClass();
$test->abstractFunction();



Create two child classes

<?php
  class vehicle{
      var $brand_name;
      var $number_of_wheels;
      var $seating_capacity;
  }
  class car extends vehicle {
      var $doors;
      var $prooftype;
      var $powersteering;
      var $powerwindows;
  }
  class motorbike extends vehicle {
      var $engine;
  }
  $merk= new car;
  $dukat=new motorbike;
?>



Improved Inheritance: call parent constructor

  

<?php
     class shape
     {
          var $x;
          var $y;
   
          function shape($x, $y)  {
               $this->move_to($x, $y);
               print("Shape constructor called <br />");
          }
          function get_x()  {
               return $this->x;
          }
          function get_y()  {
               return $this->y;
          }
          function set_x($x)  {
               $this->x = $x;
          }
          function set_y($y)  {
               $this->y = $y;
          }
          function move_to($x, $y)  {
               $this->x = $x;
               $this->y = $y;
          }
          function print_data()  {
               print("Shape is currently at " . $this->get_x() . ":" .
                                                $this->get_y() . "<br />");
          }
          function draw()
          {}
     }
     class rectangle extends shape
     {
          function rectangle($x, $y)  {
               parent::shape($x, $y);
          }
          function draw()  {
               print("Drawing rectangle at " . $this->x . ":" .
                                               $this->y . "<br />");
          }
          function print_data()  {
               print("Rectangle currently at " . $this->get_x() . ":" .
                                                 $this->get_y() . "<br />");
          }
     }
     $rect1 = new rectangle(100, 100);
     $rect1->draw();
     $rect1->print_data();
?>



Inheriting a Shape Class

<?php
     class shape {
          var $x;
          var $y;
   
          function shape()  {
               print("Shape constructor called <br />");
          }
          function get_x()  {
               return $this->x;
          }
          function get_y()  {
               return $this->y;
          }
          function set_x($x)  {
               $this->x = $x;
          }
          function set_y($y)  {
               $this->y = $y;
          }
          function move_to($x, $y)  {
               $this->x = $x;
               $this->y = $y;
          }
          function print_data()  {
               print("Shape is currently at " . $this->get_x() . ":" .
                                                $this->get_y() . "<br />");
          }
          function draw()
          {}
     }
     class rectangle extends shape
     {
          function rectangle($x, $y)  {
               $this->move_to($x, $y);
          }
          function draw()  {
               print("Drawing rectangle at " . $this->x . ":" .
                                               $this->y . "<br />");
          }
          function print_data()  {
               print("Rectangle currently at " . $this->get_x() . ":" .
                                                 $this->get_y() . "<br />");
          }
     }
     
     
     $rect1 = new rectangle(100, 100);
     $rect1->draw();
     $rect1->print_data();
?>