⊗ppOpIfInr 65 of 107 menu

PHP에서 OOP의 인터페이스

이미 알고 계시듯이, 추상 클래스는 자식 클래스에 대한 메서드 집합을 나타냅니다. 이러한 메서드 중 일부는 클래스 자체에서 구현될 수 있고, 일부 메서드는 추상으로 선언되어 자식 클래스에서의 구현을 요구할 수 있습니다.

추상 클래스가 구현된 메서드를 추가하지 않고, 오직 추상 퍼블릭 메서드 집합만을 나타내는 상황을 상상해 보십시오.

사실상 부모 클래스는 자식 클래스의 인터페이스, 즉 구현이 필수인 그들의 퍼블릭 메서드 집합을 설명합니다.

우리에게 이것이 필요한 이유는: 프로그래밍 시 실수를 줄이기 위해 - 모든 필요한 메서드를 부모 클래스에 설명함으로써, 우리는 모든 자식 클래스가 실제로 이를 구현할 것이라고 확신할 수 있습니다.

이것이 도움이 될 때: 우리의 부모 클래스와 그에 대한 몇 가지 자식 클래스를 생성했다고 가정해 보십시오. 예를 들어, 한 달 후에 우리가 또 다른 자식 클래스를 생성하기로 결정한다면, 우리는 우리 코드의 세부 사항을 이미 잊어버렸을 것이고 새로운 자식 클래스에서 어떤 메서드의 구현을 작성하는 것을 잊어버릴 수 있습니다. 그러나 PHP 자체가 메서드를 잃어버리지 않도록 할 것입니다 - 그리고 단순히 오류를 발생시킬 것입니다.

동일한 것이 여러분의 프로젝트와 함께 작업하는 다른 프로그래머에게도 적용됩니다. 부모 클래스의 코드를 여러분이 작성했고, 그 후 여러분의 동료가 또 다른 자식 클래스를 생성하기로 결정했다고 가정해 보십시오. 여러분의 동료도 몇 가지 메서드를 잃어버릴 수 없을 것입니다.

그러나 문제가 있습니다: 사실상 우리는 추상 퍼블릭 메서드를 작성하기 위해 부모 클래스를 만들었지만, 우리 자신이나 우리 동료가 실수로 이 클래스에 퍼블릭 메서드가 아니거나 추상이 아닌 메서드를 추가할 가능성이 있습니다.

부모 클래스에서 추상 퍼블릭 메서드 이외의 다른 메서드를 만드는 것을 물리적으로 금지하고 싶다고 가정해 보십시오. PHP에서는 추상 클래스 대신 인터페이스를 사용할 수 있습니다.

인터페이스는 모든 메서드가 퍼블릭이고 구현이 없는 클래스입니다. 메서드의 코드는 인터페이스의 자식 클래스가 구현해야 합니다.

인터페이스는 일반 클래스와 동일하게 선언되지만, 단어 class 대신 키워드 interface를 사용합니다.

인터페이스로부터 상속하는 것은 약간 다른 용어를 사용합니다: 클래스가 인터페이스로부터 상속받는 것이 아니라 그것들을 구현한다고 말합니다. 따라서 단어 extends 대신 키워드 implements를 사용해야 합니다.

인터페이스의 객체를 생성할 수 없습니다. 인터페이스의 모든 메서드는 public으로 선언되어야 하며 구현을 가져서는 안 됩니다. 인터페이스는 메서드만 가질 수 있고, 프로퍼티는 가질 수 없습니다. 동일한 이름을 가진 인터페이스와 클래스를 만드는 것도 불가능합니다.

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