* 추상 클래스
* 1. 키워드 사용: abstract
* 2. 클래스의 한 메서드가 추상 추상 메서드로 선언되는 한, 다음은 클래스는 추상 클래스로 선언되어야 합니다
* 3. 추상 메서드에는 메서드 선언과 매개 변수 목록만 허용되며 메서드 본문은 허용되지 않습니다.
* 4 . 추상 메서드는 불확실한 속성이므로 추상 클래스는 인스턴스화를 금지하고 상속을 통한 인스턴스화만 허용합니다.
* 5. 추상 클래스를 상속하는 하위 클래스에서는 추상 클래스의 모든 추상 메서드를 구현해야 합니다. 🎜🎜 #
* 6. 하위 클래스 멤버의 액세스 제한 수준은 추상 클래스의 계약과 같거나 낮아야 합니다. 예를 들어 추상 클래스가 보호되는 경우 하위 클래스는#이어야 합니다. 🎜🎜# * protected 또는 public은 private이 될 수 없습니다
* 7. 하위 클래스 메서드 매개 변수는 추상 클래스 메서드 매개 변수와 정확히 동일해야 하지만 기본 매개 변수는 추가할 수 있습니다
*
* 1에 특히 주의하세요. 추상 클래스는 인스턴스화할 수 없지만 해당 클래스에 대한 생성자를 만들 수는 있지만 최종 클래스로 선언해야 합니다.
#🎜🎜 # * 2. 이론적으로 추상 클래스에는 정적 멤버가 없어야 하며 일부 편집자는 E_STRICT2048 Tip을 사용하지만 여전히 이렇게 할 수 있습니다.abstract class Fruits { //水果名称 protected $name; //声明静态属性,因为要用到静态类中 // protected static $name; //抽象方法 abstract public function eat(); //静态抽象方法 // abstract static public function eat(); //尽管不能直接实例化抽象类,但仍然可以有构造方法 public function __construct() { return '抽象类构造器,实例化时自动调用<br>'; } }
class Apple extends Fruits { protected $name = '苹果'; //声明为静态属性 // public static $name = '苹果'; public function eat() { return $this->name.'可以直接生吃'; } //子类构造方法 public function __construct() { echo parent::__construct(); } //实现抽象类中的抽象静态方法eat() // public static function eat() // { // return self::$name.'可以直接生吃'; // } } $apple = new Apple; echo $apple->eat();
//echo Apple::eat();
위 내용은 PHP의 추상 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!