>백엔드 개발 >PHP 튜토리얼 >PHP 추상 클래스에 대한 자세한 설명

PHP 추상 클래스에 대한 자세한 설명

小云云
小云云원래의
2018-03-15 10:09:521916검색

PHP 5는 추상 클래스와 추상 메서드를 지원합니다. abstract로 정의된 클래스는 인스턴스화할 수 없습니다. 적어도 하나의 메소드가 추상으로 선언된 경우 모든 클래스는 추상으로 선언되어야 합니다. abstract로 정의된 메서드는 호출 메서드(매개변수)만 선언하고 특정 함수 구현을 정의할 수는 없습니다.

참고:

  1. 추상 클래스를 상속할 때 하위 클래스는 상위 클래스의 모든 추상 메서드를 정의해야 합니다.

  2. 또한 이러한 메서드의 액세스 제어는 상위 클래스의 액세스 제어와 동일해야 합니다. 또는 좀 더 편안하게).

  3. 호출 방법이 일치해야 합니다. 즉, 필수 매개변수의 유형과 수가 일관되어야 합니다.

예:

<?phpabstract class AbstractClass{
    // 我们的抽象方法仅需要定义需要的参数
    abstract protected function prefixName($name);}class ConcreteClass extends AbstractClass{

    // 我们的子类可以定义父类签名中不存在的可选参数
    // 该访问控制只能是公有的(public)或受保护(protected)的
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {            $prefix = "Mrs";
        } else {            $prefix = "";
        }        return "{$prefix}{$separator} {$name}";
    }
}$class = new ConcreteClass;echo $class->prefixName("Pacman"), "\n";echo $class->prefixName("Pacwoman"), "\n";?>

결과:

Mr. Pacman
Mrs. Pacwoman

분석:

하위 클래스는 상위 클래스의 추상 메소드 선언에 포함되지 않은 선택적 매개변수를 정의하지만 세 번째 매개변수와 충돌하지 않습니다. 메모에 포인트

관련 권장 사항:

PHP 추상 클래스 구현 방법에 대한 자세한 설명

PHP 추상 클래스와 인터페이스의 차이점에 대한 자세한 설명 및 예제 선택

PHP에 대한 자세한 설명 추상 클래스 기능 예제

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

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