이 기사는 주로 PHP의 추상 클래스 및 인터페이스 사용법을 공유합니다. 먼저 추상 메소드의 개념을 공유하겠습니다.
1. 추상 메서드
클래스에서 메서드 본문이 없는 메서드는 추상 메서드입니다.
추상 가시성 함수 메소드 이름(매개변수 1,...); // 가시성이 명시적으로 지정되지 않은 경우 기본값은 public
입니다. 예:
public function hello($args); abstract function work(); // 修饰符abstract,也可以省略
2 추상 클래스
수업 이름 {
|추상 클래스는 인스턴스화할 수 없으며 상속만 가능합니다.
추상 클래스에는 반드시 추상 메서드가 있는 것은 아닙니다. 추상 메서드가 있는 클래스는 추상 클래스여야 합니다.
언제 추상 클래스를 사용해야 하나요?
메서드가 있는데 어떻게 메서드 본문을 작성해야 할지 모르겠습니다. 이 메서드를 서브클래스에 포함해야 한다면 추상 메서드로 캡슐화하고 클래스는 추상 클래스여야 합니다.
컨트롤 서브클래스에 특정 메서드를 캡슐화해야 하는 경우 추상 메서드를 사용할 수 있습니다.
예:
PHP 강사 클래스를 선언하고 작동하도록 메소드를 재정의하세요.
abstract class People{ protected $age=22; public $height=1.70; abstract function work(); } class PhpTeacher extends People{ function work(){ echo "真不是php"; } }
클래스의 모든 메서드가 추상 메서드이고 멤버 속성이 없는 경우 이 클래스를 인터페이스라고 합니다.
interface Common{ abstract function work(); abstract function test($args); }
인터페이스 상속 인터페이스 인터페이스 인터페이스 이름은 상위 인터페이스 이름을 확장합니다
참고: 클래스 상속은 단일 상속이지만(부모 클래스는 하나만 있을 수 있음) 인터페이스 상속은 다중 상속이며, 클래스에서 인터페이스로 구현됩니다. 또한 다중 구현됩니다.
인터페이스 구현:
클래스 구현 인터페이스 클래스 클래스 이름 구현 인터페이스 이름 1, 인터페이스 이름 2, ...
상속된 클래스가 인터페이스를 동시에 구현함:
클래스가 상위 클래스를 상속함 동시에 구현 인터페이스 클래스 클래스 이름 확장 상위 클래스 이름 구현 인터페이스 이름
4. 추상 클래스와 인터페이스의 차이점
인터페이스는 추상 메소드만 포함합니다. , 구성원 속성이 없습니다.
클래스가 인터페이스(구현)를 구현하는 경우 클래스가 추상 클래스를 상속(확장)하는 경우 인터페이스의 모든 메서드를 완전히 구현해야 합니다. 사용됩니다.
추상 클래스는 단일 상속만 가질 수 있지만 인터페이스는 다중 상속을 가지며 클래스의 인터페이스 구현에도 다중 구현이 있습니다.
관련 권장 사항:
PHP 인터페이스의 추상 클래스 및 인터페이스에 대한 자세한 설명
위 내용은 PHP의 추상 클래스 및 인터페이스 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!