ch09 / exam09-08.php

자식 클래스에서의 부모 메소드 접근 권한 시각화

자식 클래스는 부모의 protected 메소드는 호출 가능하지만, private 메소드는 호출 불가

PHP Source (ch09/exam09-08.php)
단계: 0 / 0
1<?php
3class MyClass {
5public function __construct() { echo "1<br>"; }
6public function myPublic() { echo "2<br>"; }
7protected function myProtected() { echo "3<br>"; }
8private function myPrivate() { echo "4<br>"; }
16}
18class MyClass2 extends MyClass {
20function foo2() {
22$this->myPublic(); // 2 출력
23$this->myProtected(); // 3 출력 (부모 protected 접근 허용)
24// $this->myPrivate(); // Fatal Error! (부모 private 접근 불가)
25}
26}
28$myclass2 = new MyClass2; // 1 출력 (상속된 생성자)
29$myclass2->myPublic(); // 2 출력
30$myclass2->foo2(); // 2, 3 출력
31?>
준비 완료 실행 버튼 또는 다음 단계를 눌러주세요.
MyClass2 foo2() 내부 실행 권한
$this->myPublic() → 호출 가능 ('2' 출력)
$this->myProtected() → 상속 자식이므로 호출 가능 ('3' 출력)
$this->myPrivate() → 부모 전용이므로 호출 불가 (Fatal Error)
http://localhost/ch09/exam09-08.php

상속 시 메소드 가시성 요약