7.8.1 PHP抽象方法和抽象類1

7.8.1 PHP抽象方法和抽象類1

在OOP語言中,一個類可以有一個或多個子類,而每個類都有至少一個公有方法做為外部代碼訪問其的接口。而抽象方法就是為了方便繼承而引入的。

當類中有一個方法,他沒有方法體,也就是沒有花括號,直接分號結束,象這種方法我們叫抽象方法,必須使用關鍵字abstract定義。

如: public abstract function fun();

包含這種方法的類必須是抽象類也要使用關鍵字abstract加以聲明。(即使用關鍵字abstract 修飾的類為抽象類)
抽象類的特點:

不能實例化,也就new成對象

若想使用抽象類,就必須定義一個類去繼承這個抽象類,并定義覆蓋父類的抽象方法(實現抽象方法)。
其實抽象類對于子類(實現類),有一個約束的作用,

含有抽象方法的類肯定是抽象類,但是不是所有的抽象類都必須包含抽象方法。

test.php

<?php
/*
 *   1. 什么是抽象方法 ? 
 *  定義: 一個方法如果沒有方法體(一個方法,不使用"{}", 直接使用分號結束的方法,才是沒有方法體的方法 ),則這個方法就是抽象方法
 *  
 *  一、 聲明一個方法,不使用{},而直接分號結束
 *  二、如果是抽象方法,必須使用 abstract(抽象關鍵字來修飾)
 *
 *   2. 什么是抽象類 ?
 *      一、 如果一個類中有一個方法是抽象的方法, 則這個類就是抽象類
 *      二、如果聲明一個抽象類, 則這個類必須要使用 abstract關鍵字來修飾
 *
 *
 *  注意:
 *
 *      1. 只要使用 abstract修飾的類, 就是抽象類
 *      2. 抽象類是一種特殊的類, 特殊在哪里(在抽象類中可以有抽象方法)
 *      3. 除了在抽象類中可以有抽象方法,以外,和正常的類完全一樣
 *
 *
 *   抽象方法作用:
 *
 *   抽象類的作用:
 *
 */


    abstract class Person {
        public $name;
        public $age;
        //特殊的方法抽象方法的存在
        abstract function say();
        
        abstract function eat();

        function run() {
            echo "11111111111111<br>";
        }

        function sleep() {
            echo "2222222222222222<br>";
        }
    }

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容