> 백엔드 개발 > PHP 튜토리얼 > PHP의 추상 클래스

PHP의 추상 클래스

无忌哥哥
풀어 주다: 2023-04-01 21:10:02
원래의
1455명이 탐색했습니다.

* 추상 클래스

* 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 &#39;抽象类构造器,实例化时自动调用<br>&#39;;
    }
    
}
로그인 후 복사

//교육의 편의를 위해 추상 클래스와 하위 클래스는 모두 하나의 클래스 파일로 작성됩니다

//실제 개발에서는 각 클래스마다 독립적인 클래스 파일을 만들어야 합니다

class Apple extends Fruits
{
    protected $name = &#39;苹果&#39;;
    
    //声明为静态属性
//    public static $name = &#39;苹果&#39;;
    
    public  function eat()
    {
        return $this->name.&#39;可以直接生吃&#39;;
    }
    
    //子类构造方法
    public function __construct()
    {
        echo parent::__construct();
        
    }
    //实现抽象类中的抽象静态方法eat()
//    public static function eat()
//    {
//        return self::$name.&#39;可以直接生吃&#39;;
//    }
}
$apple = new Apple;
echo $apple->eat();
로그인 후 복사

//이전에는 추상 정적 클래스였습니다 인스턴스화할 필요가 없으며 클래스

//echo Apple::eat();
로그인 후 복사
를 사용하여 직접 액세스할 수 있습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿