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 { // Foo 상속
18public function printItem($string) { echo 'Bar: ' . $string . '<br>'; } // 오버라이딩
21}
23$foo = new Foo(); // Foo 인스턴스 생성
24$bar = new Bar(); // Bar 인스턴스 생성 (Foo 상속)
26$foo->printItem('baz');
27$foo->printPHP();
28echo $foo->var;
30$bar->printItem('baz');
31$bar->printPHP();
32echo $bar->var;
34?>
준비 완료 실행 버튼 또는 다음 단계를 눌러주세요.
상속 및 메소드 디스패치 테이블
$foo (인스턴스 Foo)
printItem('baz') → Foo::printItem()
printPHP() → Foo::printPHP()
$bar (인스턴스 Bar extends Foo)
printItem('baz') → Bar::printItem() (재정의됨)
printPHP() → 부모 Foo::printPHP() (상속받음)
🖥️ 브라우저 화면 출력 (echo Live Preview) 클라이언트 렌더링
http://localhost/ch09/exam09-02.php

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