PHP/Class/Class Inheritance — различия между версиями

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

Текущая версия на 10:00, 26 мая 2010

Class inheritance in action

   <source lang="html4strict">

<?php class AbstractClass {

   function abstractFunction() {
       die( "AbstractClass::abstractFunction() is abstract\n" );
   }

} class ConcreteClass extends AbstractClass {} $test = new ConcreteClass(); $test->abstractFunction();

      </source>
   
  


Create two child classes

   <source lang="html4strict">

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

?>


      </source>
   
  


Improved Inheritance: call parent constructor

   <source lang="html4strict">
 

<?php

    class shape
    {
         var $x;
         var $y;
  
         function shape($x, $y)  {
              $this->move_to($x, $y);
              print("Shape constructor called 
"); } 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() . "
"); } function draw() {} } class rectangle extends shape { function rectangle($x, $y) { parent::shape($x, $y); } function draw() { print("Drawing rectangle at " . $this->x . ":" . $this->y . "
"); } function print_data() { print("Rectangle currently at " . $this->get_x() . ":" . $this->get_y() . "
"); } } $rect1 = new rectangle(100, 100); $rect1->draw(); $rect1->print_data();

?>

      </source>
   
  


Inheriting a Shape Class

   <source lang="html4strict">

<?php

    class shape {
         var $x;
         var $y;
  
         function shape()  {
              print("Shape constructor called 
"); } 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() . "
"); } 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 . "
"); } function print_data() { print("Rectangle currently at " . $this->get_x() . ":" . $this->get_y() . "
"); } } $rect1 = new rectangle(100, 100); $rect1->draw(); $rect1->print_data();

?>

      </source>