PHP 추상 류 와 인터페이스의 차이 에 대한 상세 한 설명

대상 을 대상 으로 개발 하 는 데 있어 추상 류 와 인터페이스 라 는 두 가 지 는 비교적 이해 하기 어렵다.경험 이 있 는 프로그래머 에 게 도 마찬가지다.다음은 자신의 이해 에 근거 하여 이 두 가 지 를 이야기 하 겠 습 니 다.만약 무슨 잘못 이 있 으 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
추상 류:클래스 를 바탕 으로 그 자체 가 클래스 이 고 특수 한 클래스 일 뿐 인 스 턴 스 를 직접 할 수 없고 클래스 에서 방법,속성 을 정의 할 수 있 습 니 다.모델 과 유사 하 며 규범 화 된 후에 하위 클래스 로 하여 금 상세 한 기능 을 실현 하 게 한다.
인터페이스:주로 방법의 규범 을 바탕 으로 추상 류 의 추상 적 인 방법 과 비슷 하지만 추상 적 인 방법 에 비해 더욱 독립 적 이다.어떤 종 류 는 여러 가지 방법 을 조합 하여 새로운 종 류 를 형성 할 수 있다.
추상 클래스 와 인터페이스의 공통점:
1.모두 특정한 사물 을 설명 하고 명칭,파 라 메 터 를 규범화 시 키 며 모듈 을 형성 하 는 데 사용 되 며 상세 한 실현 세부 사항 이 없다.
2.모두 유형 을 통 해 관련 세부 업 무 를 실현 한다.
3.문법 적 으로 추상 류 의 추상 적 인 방법 은 인터페이스 와 마찬가지 로 방법론,즉(곶 기호)이 있어 서 는 안 된다.
4.모두 계승 할 수 있 고 인 터 페 이 스 는 인 터 페 이 스 를 계승 하여 새로운 인 터 페 이 스 를 형성 할 수 있 으 며 추상 류 는 추상 류 를 계승 하여 새로운 추상 류 를 형성 할 수 있다.
추상 클래스 와 인터페이스의 차이 점:
1.추상 류 는 속성,일반 방법,추상 적 인 방법 이 있 을 수 있 지만 인 터 페 이 스 는 속성,일반 방법,상수 가 있 을 수 없다.
2.추상 류 안에 반드시 추상 적 인 방법 이 있 는 것 은 아니 지만 인터페이스 안에 반드시'추상 적 인'방법 이 있 을 것 이다.
3.문법 이 다르다
4.추상 류 는 abstract 키워드 로 클래스 앞에서 설명 하고 class 성명 이 있 으 며 인 터 페 이 스 는 interface 로 설명 하지만 class 로 설명 할 수 없습니다.인 터 페 이 스 는 클래스 가 아니 기 때 문 입 니 다.
5.추상 적 인 추상 적 인 방법 은 반드시 abstract 로 설명 하고 인 터 페 이 스 는 필요 하지 않다.
6.추상 류 는 extends 키워드 로 하위 클래스 가 부 류 를 계승 한 후에 하위 클래스 에서 상세 한 추상 적 인 방법 을 실현 하 는 것 이다.인 터 페 이 스 는 implements 로 일반 클래스 가 클래스 에서 인 터 페 이 스 를 실현 하 는 상세 한 방법 이 고 인 터 페 이 스 는 여러 가지 방법 을 한꺼번에 실현 할 수 있 으 며 쉼표 로 각 인 터 페 이 스 를 나 누 면 된다.
각자 의 특징:
추상 류 안에 반드시 추상 적 인 방법 이 있 는 것 은 아니 지만 추상 적 인 방법 이 있 는 유형 은 반드시 추상 류 이다.
추상 류 에서 모두 구체 적 인 방법 이 라 하 더 라 도 예화 할 수 없다.새로운 유형 이 계승 한 후에 사례 계승 류 가 있어 야 한다.
인 터 페 이 스 는 여러 가지 다른 방법 을 한꺼번에 실현 할 수 있다.
인터페이스 자체 가 추상 적 이지 만 주 의 는 추상 적 인 유형 이 아니다.인 터 페 이 스 는 유형 이 아니 라 그 방법 이 추상 적 이기 때문이다.그래서 그것 도 추상 적 이다.
응용 과 결합:
아래 의 코드 는 자신의 사 고 를 바탕 으로 실제 개발 에서 응용 되 지 않 았 는데 이런 문법 이 좀 특이 할 뿐이다.추상 과 인 터 페 이 스 를 결합 시키다.
1.추상 류 와 인터페이스의 결합

<?php 
/* 
           ,            。 
*/ 
interface work{ 
  public function say(); 
}
abstract class a implements work{ 
  public function showlove(){ 
    echo 'love you<br />'; 
  } 
}
class b extends a{ 
  public function say(){ 
    echo 'hello, i m in b'; 
  } 
}
$k=new b(); 
$k->say();
/* 
         
   implements   ,        ,                    。
*/
2.인터페이스 와 계승 의 결합
부 류 는 일반 류 로 자 류 를 계승 한 후에 자 류 에서 인 터 페 이 스 를 실현 한다.
의문:이런 방법 이 의미 가 있 는 지,실제 개발 에서 이런 응용 이 있 는 지?

<?php
interface kk{ 
  public function say(); 
}
class a { 
  public function show(){ 
    echo '    <br />'; 
  } 
}
class b extends a implements kk{ 
  public function say(){ 
    echo '    A ,    say   <br />'; 
  }
}
$b=new b(); 
$b->show();//    
$b->say();//    A ,    say   
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.

좋은 웹페이지 즐겨찾기