ch09 / exam09-02.php

클래스 상속(extends)과 메소드 오버라이딩 시각화

부모 클래스 Foo와 자식 클래스 Bar extends Foo 간의 상속 및 printItem() 재정의

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() (상속받음)
http://localhost/ch09/exam09-02.php

상속(Inheritance)과 오버라이딩(Overriding)