程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php抽象類

php抽象類

編輯:PHP綜合

為什麼需要設計抽象類?

在實際開發中,可能有這樣一種類:是其它類的父類,但其本身並不需要實例化,主要用途是用於讓子類來繼承。這樣可以達到代碼復用的目的,同時有利於項目設計者來設計類。

1、抽象類的格式

abstract class 類名{

abstract 修飾符 function 函數名(參數列表);

}

<?php
abstract class Animal{
public $name;
protected $age;
//這個方法沒有方法體,主要是為了讓子類去實現
abstract public function cry();
}
class Cat extends Animal{
public function cry(){
echo "貓正在叫!";
}
}
$cat1=new Cat();
$cat1->cry();
?>

2、用abstract關鍵字來修飾一個類,這個類就是抽象類;用abstract關鍵字來修飾一個方法,這個方法就是抽象方法,該方法就不能有方法體。

3、抽象類不能被實例化

4、抽象類不一定要包含abstract方法,即,抽象類可以沒有abstract方法。

5、一旦類包含了abstract方法,則這個類必須聲明為abstract

6、抽象方法不能有函數體

7、抽象類可以沒有抽象方法,同時可以有實現了的方法

<?php
abstract class Animal{
public $name="www.bianceng.cn";
protected $age;
//這個方法沒有方法體,主要是為了讓子類去實現
abstract public function cry();
//抽象類中實現了的方法
public function getName(){
return $this->name;
}
}
class Cat extends Animal{
public function cry(){
echo "貓正在叫!";
}
}
$cat1=new Cat();
$cat1->cry();
echo "<br />".$cat1->getName();
?>

8、如果一個類繼承了某個抽象類,則它必須實現該抽象類的所有抽象方法,除非它自己也聲明為抽象類。

<?php
//這是一個抽象類
abstract class A{
abstract function test();
}
class B extends A{
function test(){ //此方法如果不實現,將會報錯
echo "www.bianceng.cn";
}
}
echo "good";
?>

URL: http://www.bianceng.cn/webkf/PHP/201612/50479.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved