PHP Source (ch09/exam09-02.php)
단계: 0 / 0
1<?php
3class Foo {
5public $var = 'Object-Oriented Programming!<br>';
7public function printItem($string) { echo 'Foo: ' . $string . '<br>'; }
11public function printPHP() { echo 'PHP is great.<br>'; }
14}
16class Bar extends Foo { // 상속
18public function printItem($string) { echo 'Bar: ' . $string . '<br>'; } // 오버라이딩
21}
23$foo = new Foo(); $bar = new Bar();
26$foo->printItem('baz'); $foo->printPHP(); echo $foo->var;
30$bar->printItem('baz'); $bar->printPHP(); echo $bar->var;
34?>
상속 및 메소드 디스패치 테이블
$foo (인스턴스 Foo)
printItem('baz') → Foo::printItem()
printPHP() → Foo::printPHP()
$bar (인스턴스 Bar extends Foo)
printItem('baz') → Bar::printItem() (재정의됨)
printPHP() → 부모 Foo::printPHP() (상속받음)