>  기사  >  백엔드 개발  >  PHP의 추상 클래스와 인터페이스의 차이점과 선택

PHP의 추상 클래스와 인터페이스의 차이점과 선택

不言
不言원래의
2018-04-08 15:12:381065검색

이 글에서는 PHP의 추상 클래스와 인터페이스의 차이점과 선택 사항을 소개합니다. 필요한 친구들이 참고할 수 있습니다.

인터페이스 사용은 Through를 통해 이루어집니다. 키워드가 구현됩니다. 추상 클래스의 사용은 키워드 확장을 통해 이루어집니다. 물론 인터페이스는 키워드 확장을 통해 상속될 수도 있습니다. 2. 멤버 변수(클래스 정적 변수 포함)는 인터페이스에서 선언할 수 없지만 클래스 상수는 선언할 수 있습니다. 데이터 캡슐화를 구현하기 위해 추상 클래스에서 다양한 유형의 멤버 변수를 선언할 수 있습니다.

[php]

view plain
copy

<?php   
abstract class Father {  
    function meth1() {  
        echo "meth1...<br>";  
    }  
    abstract function meth2();  
    public $var1="var1";  
    public static $var2="var2";  
    const Var3="Var3";  
}  
class Son extends Father {  
    function meth2() {  
        echo "meth2 of Son...<br>";  
    }  
}  
$s=new Son();  
echo $s->var1."<br>";  
echo Father::$var2."<br>";  
echo Father::Var3."<br>";  
  
  
Interface IFather {  
    //public $iVar1="iVar1";        此处接口定义中不能包含成员变量  
    //public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量  
    const iVar3="iVar3";  
    function iMeth1();  
}  
Class ISon implements IFather {  
    function iMeth1() {  
        echo "iMeth1...<br>";  
    }  
}  
$is=new ISon();  
echo IFather::iVar3;  
?>

3. 인터페이스에는 생성자가 없으며 추상 클래스에는 생성자가 있을 수 있습니다.


4. 인터페이스의 메서드는 기본적으로 공개 유형이지만 추상 클래스의 메서드는 비공개, 보호 또는 공개로 수정할 수 있습니다.

5. 클래스는 동시에 여러 인터페이스를 구현할 수 있지만 클래스는 하나의 추상 클래스에서만 상속할 수 있습니다.

추상 클래스 또는 인터페이스. (

가장 큰 차이점은 추상화는 하나만 상속할 수 있는 반면 인터페이스는 여러 상속할 수 있다는 점입니다)밀접하게 관련된 일부가 채택할 모델을 만들고 싶은 경우 객체의 경우 추상 클래스를 사용할 수 있습니다. 관련되지 않은 여러 개체에서 채택할 기능을 만들려면 인터페이스를 사용하세요.

  • 여러 소스에서 동작을 상속해야 하는 경우 인터페이스를 사용하세요.

  • 모든 클래스가 공통 동작 구현을 공유한다는 것을 알고 있다면 추상 클래스를 사용하고 그 안에 해당 동작을 구현하세요. 주된 차이점은 추상화가 하나에 의해서만 상속 될 수 있고, 인터페이스는 여러 관련 권장 사항에 의해 상속 될 수 있다는 것입니다. PHP의 추상 클래스와 인터페이스 차이점

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

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