PHP에서 추상 클래스는 주로 유형 숨기기 및 전역 변수 역할을 하는 데 사용됩니다. 이 동작 세트는 하나의 가능한 특정 구현 방법을 가질 수 있습니다. Abstract 메서드 클래스에서 이 클래스는 추상 클래스입니다.
이 문서의 운영 환경: Windows 10 시스템, PHP 버전 7.1, Dell G3 컴퓨터.
추상 클래스는 문제 영역의 분석 및 설계에서 파생된 추상 개념을 나타내는 데 자주 사용됩니다. 이는 서로 다르게 보이지만 본질적으로 동일한 일련의 특정 개념을 추상화한 것입니다.
추상 클래스는 불완전하므로 기본 클래스로만 사용할 수 있습니다. 객체지향 접근 방식에서 추상 클래스는 주로 유형을 숨기고 전역 변수로 작동하는 데 사용됩니다.
객체 지향 방법에서는 유형 숨기기를 위해 추상 클래스가 주로 사용됩니다. 고정된 동작 집합에 대한 추상적인 설명을 구성하지만 이 동작 집합에는 가능한 구체적인 구현이 얼마든지 있을 수 있습니다. 이 추상 설명은 추상 클래스이며, 가능한 구체적인 구현 집합은 가능한 모든 파생 클래스로 표현됩니다. 모듈은 추상 본문에서 작동할 수 있습니다. 모듈은 고정된 추상화에 의존하기 때문에 동시에 수정할 수 없습니다. 이 추상화에서 파생되어 이 모듈의 동작 기능도 확장될 수 있습니다.
<?php //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。 //只要有一个抽象方法,那么此类必须定义为抽象类。 //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。 //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。 //抽象类不能定义私有方法,可以定义私有属性。 //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 abstract class Employees{ protected $name = null; function __construct($nameStr){ $this->name = $nameStr; } abstract public function work(); public function work1(){ echo "<p>$this->name</p>"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } /*public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 echo "<p>$this->name is working</p>"; }*/ } //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。 $obj2 = new Managers('e2'); //$obj2->work();
위 코드를 실행하세요. 다음 오류 메시지가 표시됩니다:
치명적인 오류: 클래스 관리자에는 추상 메서드가 1개 포함되어 있으므로 추상으로 선언하거나 26행의 D:phproottestClassDemo.php에서 나머지 메서드(Employees::work)를 구현해야 합니다
오류 프롬프트 위치 변경 및 종료 위치 코드 주석이 삭제된 후 다음 코드로 변경됩니다.
<?php //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。 //只要有一个抽象方法,那么此类必须定义为抽象类。 //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。 //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。 //抽象类不能定义私有方法,可以定义私有属性。 //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 abstract class Employees{ protected $name = null; function __construct($nameStr){ $this->name = $nameStr; } abstract public function work(); public function work1(){ echo "<p>$this->name</p>"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 echo "<p>$this->name is working</p>"; } } //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。 $obj2 = new Managers('e2'); $obj2->work();
테스트 실행 결과:
e2가 작동 중입니다.
추천 학습: "
PHP Video Tutorial위 내용은 PHP에서 추상 클래스의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!