php 抽象類是個啥

抽象類:一個類中至少有一個方法是抽象的,我們稱之爲抽象類。

要求:

  • 1.一個類中至少有一個抽象方法
  • 2.抽象方法不允許有{}
  • 3.抽象方法前面必須加abstract

類前面加abstract

<?php 
    abstract class Human {
        public abstract function getInfo () {
            echo '我是getInfo';
        }
    }
?>

定義了一個Human的抽象類,抽象類中有個抽象方法,執行發現報錯

Fatal error: Abstract function Human::getInfo() cannot contain body

抽象方法不能有正文部分(沒有方法體),需要去掉花括號

<?php 
    abstract class Human {
        public abstract function getUserInfo ();
        public abstract function getWalletInfo ();
    }
    
    class Student extends Human {
        public function getUserInfo () {
            echo 'getinfo';
        }
        
        public function getWalletInfo () {
            echo 'getwalletInfo';
        }
    }
    
    $Tom = new Student();
    $Tom -> getUserInfo();
    $Tom -> getWalletInfo ();
?>

1.抽象類不能被實例化,只能被繼承。
2.繼承的派生類當中要把所有抽象方法重載才能實例化

abstract class Human {
    public abstract function getUserInfo ();
    public abstract function getWalletInfo ();
}

class Student extends Human {
    public function getUserInfo () {
        echo 'getinfo';
    }
    
    // public function getWalletInfo () {
    //     echo 'getwalletInfo';
    // }
}

$Tom = new Student();

比如此時派生類種少寫了一個getWalletInfo() 方法,就導致new 失敗

抽象類的意義:派生類繼承抽象類的時候,必須要用抽象類的命名規則去建立方法,否則不允許派生類實例化,其實是申明瞭一種規範,達到規範方法的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章