> 백엔드 개발 > PHP 튜토리얼 > PHP 객체지향 인터페이스 기술 사례에 대한 자세한 설명

PHP 객체지향 인터페이스 기술 사례에 대한 자세한 설명

伊谢尔伦
풀어 주다: 2023-03-11 22:02:01
원래의
1233명이 탐색했습니다.

PHP5 인터페이스 기술

PHP는 대부분의 객체 지향 프로그래밍 언어와 마찬가지로 다중 상속을 지원하지 않습니다. 즉, 각 클래스는 하나의 상위
클래스만 상속할 수 있습니다. 이 문제를 해결하기 위해 PHP에서는 인터페이스를 구현하는 클래스가 구현해야 하는 일련의 메서드를 지정하는 것이 인터페이스라는 개념을 도입했습니다. 인터페이스는 특별한
추상 클래스이고, 추상 클래스는 특수 클래스이므로 인터페이스도 특수 클래스입니다. 인터페이스를 특수 추상 클래스라고 하는 이유는 무엇입니까? 추상 클래스의 모든 메서드가
추상 메서드인 경우 "인터페이스"를 사용하도록 선언 메서드를 변경합니다. 즉, 인터페이스의 모든 메서드는 추상 메서드로
선언되어야 하며 선언할 수 없습니다. 인터페이스의 변수 및 인터페이스의 모든 멤버는 공개 권한을 갖습니다.
따라서 서브클래스도 구현할 때 공개 권한 제한을 사용해야 합니다.
클래스를 선언할 때 사용하는 키워드는 "class"이고 인터페이스는 특수 클래스이며
사용되는 키워드는 "interface"입니다.
클래스 정의: 클래스 클래스 이름 {...}, 인터페이스 선언: 인터페이스 인터페이스 이름 { … }
코드 조각

<?php
abstract class Demo{ 
var $test; 
abstract function fun1(); 
abstract function fun2(); 
function fun3(){ 
… . 
} 
} 
$demo=new Demo(); //抽象类为能产生实例对象,所以这样做是错的,实例化对象交给子类 
class Test 
extends
 Demo{ 
function fun1(){ 
… 
} 
function fun2(){ 
… 
} 
} 
$test=new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法 
?>
로그인 후 복사

위의 예에서는 인터페이스의 모든 메서드가 추상 메서드이기 때문에 두 개의 추상 메서드 "fun1"과 "fun2"를 선언하는 인터페이스 "one"이 정의되어 있으므로 선언할 때 추상 메서드인 경우에는 추상 클래스처럼 "abstract" 키워드를 사용할 필요가 없습니다. 또한 이 키워드는 기본적으로 추가되었으므로 인터페이스의 "public" 액세스 권한도 제거할 수 있습니다. 공용이며 인터페이스의 모든 멤버는 공용이어야 하기 때문에 인터페이스의 멤버에 대해 "개인" 및 "보호" 권한을 사용할 수 없으며 공용 또는 기본값을 사용해야 합니다. 또한 인터페이스에서 상수 "constant"를 선언했습니다. 인터페이스에서는 변수를 멤버로 사용할 수 없기 때문에 const 키워드 선언을 사용해야 합니다.

인터페이스는 특별한 추상 클래스이므로 그 안의 모든 메서드는 추상 메서드이므로 인터페이스는 인스턴스 개체를 생성할 수 없으며 모든 추상 메서드는 하위 클래스로 구현되어야 합니다.
"extends" 키워드를 사용하면 하나의 인터페이스가 다른 인터페이스를 상속할 수 있습니다.
코드 조각

<?php 
//使用”extends”继承另外一个接口 
interface Two extends One{ 
function fun3(); 
function fun4(); 
} 
?>
로그인 후 복사

그리고 인터페이스의 모든 추상 메서드를 구현하기 위해 인터페이스의 하위 클래스를 정의할 때 사용되는 키워드는 "구현"입니다.
앞서 언급한 "확장"이 아닙니다.
코드 조각
<?php 
//使用“implements”这个关键字去实现接口中的抽象方法 
class Three implements One{ 
function fun1(){ 
… . 
} 
function fun2(){ 
… . 
} 
} 
//实现了全部方法,我们去可以使用子类去实例化对象了 
$three=new Three(); 
?>
로그인 후 복사

추상 클래스를 사용하여 인터페이스에서 일부 추상 메소드를 구현할 수도 있지만 객체를 인스턴스화하려면 이 추상
클래스에 구현할 하위 클래스가 있어야 합니다. 모든 추상 메소드는 구현되어야 합니다.
앞서 말했듯이 PHP는 단일 상속입니다. 클래스는 하나의 상위 클래스만 가질 수 있지만 클래스는 여러 표준을 준수해야 하는 클래스와 동일합니다. 국가의 법률을 준수해야 할 뿐만 아니라 학교에 있으면 학교 규칙도 준수해야 합니다.

코드 조각

<?php 
//使用implements实现多个接口 
class Four implemtns 接口一, 接口二, … .{ 
//必须把所有接口中的方法都要实现才可以实例化对象。 
} 
?>
로그인 후 복사

PHP에서는 하나의 클래스가 여러 인터페이스를 구현할 수 있을 뿐만 아니라 클래스를 상속받을 수도 있습니다. 여러 인터페이스를 동시에 구현하려면 먼저 클래스를 상속한 다음
코드 조각

<?php 
//使用extends继承一个类,使用implements实现多个接口 
class Four extends 类名一implemtns 接口一, 接口二, … .{ 
//所有接口中的方法都要实现才可以实例化对象 
… … … .. 
} 
?>
로그인 후 복사



을 구현해야 합니다.

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

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