> 백엔드 개발 > PHP 튜토리얼 > PHP 객체지향 다중상속과 인터페이스 사용법

PHP 객체지향 다중상속과 인터페이스 사용법

巴扎黑
풀어 주다: 2023-03-07 12:42:01
원래의
3258명이 탐색했습니다.

인터페이스를 소개하기 전에 먼저 인터페이스를 사용해야 하는 이유를 먼저 소개하겠습니다.

그럼 왜 인터페이스를 사용하는 걸까요?

컴퓨터 언어 중 다중 상속을 지원하는 객체지향 언어는 소수에 불과합니다. 우리가 배우는 PHP 언어도 대부분의 언어와 마찬가지로 다중 상속을 지원하지 않습니다. 간단히 말해서, 상위 클래스는 여러 개의 하위 클래스를 가질 수 있지만 하위 클래스는 하나의 상위 클래스만 가질 수 있습니다.

다중 상속이란 무엇인가요?

다중 상속은 두 개 이상의 상위 클래스를 상속하는 하위 클래스입니다. 이는 PHP에서 허용되지 않는 다중 상속입니다. PHP에서 다중 상속을 구현하려면 인터페이스를 사용해야 합니다. 인터페이스는 다중 상속에 대한 솔루션으로 볼 수 있습니다. PHP의 객체 지향 인터페이스는 다른 객체 지향 언어 인터페이스와 유사합니다.

인터페이스 클래스 구문 소개:

인터페이스 클래스는 인터페이스 키워드를 통해 선언되며 클래스에는 구현되지 않은 메서드와 일부 멤버 변수만 포함될 수 있으며 형식은 다음과 같습니다.

interface InterfaceName{
function interfaceName1(){
}
function interfaceName2(){
}
}
로그인 후 복사

참고:

인터페이스에서 클래스 멤버를 수정하기 위해 public 이외의 키워드를 사용하지 마세요. 메소드의 경우 키워드를 작성하지 않아도 됩니다. 이는 인터페이스 클래스 자체의 속성에 따라 결정됩니다.

서브클래스 구문 소개:

서브클래스는 Implements 키워드를 통해 인터페이스를 구현합니다. 여러 인터페이스를 구현하려면 쉼표로 구분해야 합니다. 그리고 인터페이스 클래스에서 구현되지 않은 모든 메서드는 하위 클래스에서 구현되어야 합니다. 그렇지 않으면 치명적인 오류가 발생합니다.

하위 클래스 정의 형식:

class SubClass implements InterfaceName1, InterfaceName2{
function InterfaceName1(){
}
function InterfaceName2(){
}
}
로그인 후 복사

인터페이스 클래스 인스턴스 정보:

<?php
header("content-type:text/html;charset=utf-8");
interface A{                                //创建接口
function a();
}
interface B{
function b();
}
class Php implements A{
function a()
{
echo &#39;php中文网&#39;;
}
}
class Html implements A , B{
function a()
{
echo &#39;PHP中文网是免费网站&#39;;
}
function b()
{
echo &#39;PHP中文网网址是www.php.cn&#39;;
}
}
$php = new Php();
$html = new html();
$php ->a();
echo &#39;<br/>&#39;;
$html ->a();
$html ->b();
로그인 후 복사

인터페이스 클래스에서 구현되지 않은 모든 메서드는 구현된 하위 클래스에서 선언해야 합니다. 그렇지 않으면 치명적인 오류가 발생합니다. 인터페이스에서 일부 클래스를 직접 구현하여 치명적인 오류가 발생하는지 확인할 수 있습니다.

위 내용은 PHP 객체지향 다중상속과 인터페이스 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿