>  기사  >  백엔드 개발  >  PHP 추상과 인터페이스의 차이점에 대한 자세한 설명

PHP 추상과 인터페이스의 차이점에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-05 10:36:071248검색

이 글은 PHP에서 추상과 인터페이스의 차이점을 자세히 분석하고 소개한 글입니다. 필요한 친구들이 와서 참고하면 좋겠습니다.

1.php 인터페이스클래스: 인터페이스

사실 그 기능은 매우 간단합니다. 많은 사람들이 함께 프로젝트를 개발할 때 다른 사람이 작성한 일부 클래스를 모두 호출할 수 있습니다. 그러면 특정 기능의 구현 방법 이름을 어떻게 알 수 있습니까? 그런 다음 PHP 인터페이스 클래스가 작동합니다. 인터페이스 클래스를 정의할 때 그 안의 메소드는 다음 하위 클래스에 의해 구현되어야 합니다. 예:

코드는 다음과 같습니다. 구매, 판매 및 보기의 세 가지 메소드가 정의됩니다. 그런 다음 이 클래스의 모든 하위 클래스는 이 세 가지 메소드 중 하나를 구현해야 합니다. 사실 인터페이스 클래스는 직설적으로 말하면 클래스의 템플릿이자 클래스의 규정이다. 이 범주에 속하면 어떻게 하든 내 규정을 따라야 한다.

코드는 다음과 같습니다.

 interface Shop
 {
       public function buy($gid);
       public function sell($gid);
       public function view($gid);
 }

생각해 보세요. 많은 사람들이 함께 작업하는 대규모 프로젝트에서는 인터페이스 클래스가 있으면 매우 편리합니다. 특정 기능에 대해 다른 사람에게 물어볼 필요가 없다는 것입니다. 메소드 이름이 무엇입니까? 물론 이것이 마음에 들면 어쩔 수 없습니다.

결론: 인터페이스 클래스는 클래스의 리더로서 방향을 지시하며 하위 클래스는 지정된 메소드를 완료해야 합니다.

2.php Abstract class

: abstract

사실 추상 클래스와 인터페이스 클래스는 부분적으로 비슷한 문장을 본 기억이 있는데, 추상 클래스는 비슷한 부분을 추출한 것 같네요. 사실, 이는 추상 클래스에 대한 진실을 알려줍니다. 추상 클래스의 기능은 많은 클래스가 계속해서 반복적으로 작성하는 많은 메서드를 사용한다는 것을 알게 되면 "할 수 있습니다. 클래스를 다시 작성하고 각 공용 클래스를 인스턴스화하고 동일한 메소드를 호출하지 마십시오." 이것은 가능합니다. 실제로 이것이 추상 클래스가 하는 일이지만 그들은 그것을 생략합니다. 인스턴스화 단계가 없으면 메소드를 호출하는 것만큼 편리합니다. 이 클래스를 직접 사용할 수도 있고 이 메서드를 overload할 수도 있습니다. 예를 들면 다음과 같습니다.

코드는 다음과 같습니다.

class BaseShop implements Shop
{
public function buy($gid)
{
echo('你购买了ID为 :'.$gid.'的商品');
}
public function sell($gid)
{
echo('你卖了ID为 :'.$gid.'的商品');
}
public function view($gid)
{
echo('你查看了ID为 :'.$gid.'的商品');
}
}
예는 위와 같습니다. 구매, 판매, 보기, 추상화와 같은 모든 부분을 추출했습니다. 클래스를 상속한 하위 클래스는 자동으로 이러한 메서드를 획득하고 하위 클래스는 고유한 작업을 수행하고 코드 중복을 도입하며 재사용성을 향상시킵니다.

결론:

추상 클래스는 서비스를 제공하는 서비스입니다. 서비스가 제공되지 않아 불만이 있을 때 사용할 필요는 없습니다. , 직접 제공할 수도 있습니다. 와서 해 보세요. 추상 함수 메소드는 인터페이스와 다소 유사하며 상위 클래스에서 구현되어야 합니다. 그러나 abstract로 선언되지 않은 메소드는 하위 클래스의 공개 메소드가 되므로 구현할 필요가 없습니다. 하위클래스에 있어요

위 내용은 PHP 추상과 인터페이스의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.