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>