⊗ppOpFnCl 63 of 107 menu

PHP에서 OOP의 추상 클래스

클래스 User가 있고, 그로부터 EmployeeStudent 클래스가 상속받는다고 가정해 보세요.

이 경우, EmployeeStudent 클래스의 객체는 생성하지만, User 클래스의 객체는 생성하지 않을 것입니다. 이 클래스는 후손들의 공통 속성과 메서드를 그룹화하는 데에만 사용되기 때문입니다.

이 경우, 당신이나 다른 프로그래머가 실수로 User 객체를 생성하는 것을 강제로 금지할 수 있습니다.

이를 위해 소위 추상(abstract) 클래스가 존재합니다. 추상 클래스는 그로부터 상속받기 위한 클래스입니다. 이러한 클래스의 객체는 생성할 수 없습니다.

클래스를 추상적으로 선언하려면, 선언 시 abstract 키워드를 작성해야 합니다:

<?php abstract class User { } ?>

자, 추상 클래스 User의 구현을 작성해 봅시다. 비공개 속성 name과 그에 대한 게터(getter)와 세터(setter)가 있다고 가정해 보세요:

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

User 클래스의 객체를 생성하려고 시도하면 오류가 발생합니다:

<?php $user = new User; // 오류를 발생시킴 ?>

그러나 우리의 클래스로부터 상속받는 것은 가능할 것입니다. 우리의 추상 클래스 User를 상속하는 Employee 클래스를 만들어 봅시다:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

Employee 클래스의 객체를 생성해 보세요 - 모든 것이 작동할 것입니다:

<?php $employee = new Employee; $employee->setName('john'); // 부모, 즉 User 클래스의 메서드 $employee->setSalary(1000); // 자체 메서드, 즉 Employee 클래스의 메서드 echo $employee->getName(); // 'john'을 출력합니다 echo $employee->getSalary(); // 1000을 출력합니다 ?>

추상 클래스 Figure을 만드세요, 이는 기하학적 도형을 나타냅니다. 원, 직사각형, 정사각형에 대한 클래스가 이를 상속하도록 하세요.

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