05/05_Abstract.php


  1  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
  2  <html>
  3  <head>
  4    <meta http-equiv="Author" content="Imrich BURANSKY" />
  5    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1250" />
  6    <title>Abstract</title>
  7  </head>
  8  <body>
  9  <div>
 10  <h2>Abstraktná trieda</h2>
 11  <?php
 12  
 13  abstract class CA
 14  {
 15    abstract public function FA ();
 16  }
 17  
 18  class CA1 extends CA
 19  {
 20    public function __construct()
 21    {
 22      echo "CA1: Konštruktor<br />\n";
 23    }
 24    public function FA ()
 25    {
 26      echo "CA1: Funkcia FA()<br />\n";
 27    }
 28  }
 29  
 30  class CA2 extends CA
 31  {
 32    public function __construct()
 33    {
 34      echo "CA2: Konštruktor<br />\n";
 35    }
 36    public function FA ()
 37    {
 38      echo "CA2: Funkcia FA<br />\n";
 39    }
 40  }
 41  
 42  class CB
 43  {
 44    public $A;
 45    public function __construct(CA $A)
 46    {
 47      echo "CB: Konštruktor<br />\n";
 48      $this->A = $A;
 49    }
 50  
 51    public function FX ()
 52    {
 53      echo "CB: Funkcia FX<br />\n";
 54      $this->A->FA();
 55    }
 56  }
 57  echo "<b>Vytvorenie a použitie objektu \$B1 triedy CB .. CA1</b><br />\n";
 58  $B1 = new CB(new CA1()); // CA1: Konštruktor
 59                           // CB: Konštruktor
 60  $B1->FX();               // CB: Funkcia FX
 61                           // CA1: Funkcia FA()
 62  echo "<b>Vytvorenie a použitie objektu \$B2 triedy CB .. CA2</b><br />\n";
 63  $B2 = new CB(new CA2()); // CA2: Konštruktor
 64                           // CB: Konštruktor
 65  $B2->FX();               // CB: Funkcia FX
 66                           // CA2: Funkcia FA
 67  
 68  ?>
 69  </div>
 70  </body>
 71  </html>

« Späť