⊗ppOpIhCOM 29 of 107 menu

PHP OOP에서 오버라이딩된 메서드 호출하기

오버라이딩(재정의)을 하면 자식 클래스는 부모 클래스의 오버라이딩된 메서드에 대한 접근 권한을 잃게 됩니다. 그러나 여전히 그 메서드에 접근하는 것이 가능합니다. 이는 부모 클래스를 가리키는 키워드 parent를 사용하여 수행할 수 있습니다.

부모 클래스의 메서드에 접근이 필요할 수 있는 예시를 살펴보겠습니다. 다음과 같은 부모 클래스가 있다고 가정해 봅시다:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

자식 클래스에서 부모 클래스의 메서드를 오버라이딩했다고 가정해 봅시다:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

오버라이딩된 메서드에서 조건이 충족될 때 실제로는 부모 클래스 메서드의 코드가 실행된다는 점을 알 수 있습니다. 이는 불필요한 코드 중복을 초래합니다.

부모 클래스의 메서드를 호출하면 이 중복을 제거할 수 있습니다. 이제 해보겠습니다:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // 부모 클래스의 메서드 } else { echo 'student name error'; } } } ?>

다음 코드가 주어졌습니다:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } else { echo 'need age less 120'; } } } ?>

Employee 클래스에서 부모 클래스의 원본 메서드를 사용하여 나이 설정자를 수정하고 간소화하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부