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>";
}
}