PHP 5는 추상 클래스와 추상 메서드를 지원합니다. abstract로 정의된 클래스는 인스턴스화할 수 없습니다. 적어도 하나의 메소드가 추상으로 선언된 경우 모든 클래스는 추상으로 선언되어야 합니다. abstract로 정의된 메서드는 호출 메서드(매개변수)만 선언하고 특정 함수 구현을 정의할 수는 없습니다.
참고:
추상 클래스를 상속할 때 하위 클래스는 상위 클래스의 모든 추상 메서드를 정의해야 합니다.
또한 이러한 메서드의 액세스 제어는 상위 클래스의 액세스 제어와 동일해야 합니다. 또는 좀 더 편안하게).
호출 방법이 일치해야 합니다. 즉, 필수 매개변수의 유형과 수가 일관되어야 합니다.
예:
<?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 중국어 웹사이트의 기타 관련 기사를 참조하세요!