⊗ppOpIhOPM 28 of 107 menu

PHP에서 OOP 상위 클래스 메서드 재정의하기

하위 클래스는 같은 이름의 메서드를 생성하여 상위 클래스의 메서드를 재정의할 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같은 상위 클래스가 있다고 가정해 봅시다:

<?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) { } } ?>

일반적으로 상위 클래스 메서드를 재정의하는 이유는 해당 메서드의 동작을 변경하거나 보완하기 위해서입니다. 이 경우 이름의 길이를 확인하는 기능을 추가해 보겠습니다:

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

실제로 재정의된 메서드가 호출되는지 확인해 보겠습니다. 먼저 하위 클래스의 객체를 생성합니다:

<?php $student = new Student; ?>

이제 올바른 값을 전달하여 메서드를 호출해 보겠습니다:

<?php $student->setName('john'); ?>

이번에는 올바르지 않은 값을 전달하여 메서드를 호출해 보겠습니다. 결과적으로 발생한 예외를 확인할 수 있습니다:

<?php $student->setName(''); // 오류 ?>

User 클래스에서 나이에 대한 getter와 setter를 만드세요.

Employee 클래스에서 나이 setter를 재정의하고, 나이가 18세에서 65세 사이인지 확인하는 기능을 추가하세요.

한국어
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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부