7.8.1 PHP抽象方法和抽象類1
在OOP語言中赫悄,一個類可以有一個或多個子類纠拔,而每個類都有至少一個公有方法做為外部代碼訪問其的接口越走。而抽象方法就是為了方便繼承而引入的涂乌。
當(dāng)類中有一個方法蛉迹,他沒有方法體傅寡,也就是沒有花括號,直接分號結(jié)束北救,象這種方法我們叫抽象方法荐操,必須使用關(guān)鍵字abstract定義。
如: public abstract function fun();
包含這種方法的類必須是抽象類也要使用關(guān)鍵字abstract加以聲明珍策。(即使用關(guān)鍵字abstract 修飾的類為抽象類)
抽象類的特點:
不能實例化托启,也就new成對象
若想使用抽象類,就必須定義一個類去繼承這個抽象類膛壹,并定義覆蓋父類的抽象方法(實現(xiàn)抽象方法)驾中。
其實抽象類對于子類(實現(xiàn)類),有一個約束的作用模聋,
含有抽象方法的類肯定是抽象類肩民,但是不是所有的抽象類都必須包含抽象方法。
test.php
<?php
/*
* 1. 什么是抽象方法 ?
* 定義: 一個方法如果沒有方法體(一個方法链方,不使用"{}", 直接使用分號結(jié)束的方法持痰,才是沒有方法體的方法 ),則這個方法就是抽象方法
*
* 一祟蚀、 聲明一個方法工窍,不使用{},而直接分號結(jié)束
* 二、如果是抽象方法前酿,必須使用 abstract(抽象關(guān)鍵字來修飾)
*
* 2. 什么是抽象類 ?
* 一患雏、 如果一個類中有一個方法是抽象的方法, 則這個類就是抽象類
* 二罢维、如果聲明一個抽象類淹仑, 則這個類必須要使用 abstract關(guān)鍵字來修飾
*
*
* 注意:
*
* 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>";
}
}