php 类定义抽象方法吗,PHP面向对象:接口与抽象方法
簡明現代魔法 -> PHP服務器腳本 -> PHP面向對象:接口與抽象方法
PHP面向對象:接口與抽象方法
2010-07-01
接口(interface)是抽象方法和靜態常量定義的集合。
接口是一種特殊的抽象類,這種抽象類中只包含抽象方法和靜態常量。
接口中沒有其它類型的內容。
我們先寫接口的定義,下面的例子是接口的一個簡單寫法。
interface 接口名{
}
下面的例子定義了一個接口 User ,這個接口中有兩個抽象方法,getName() 和 setName()。能看到接口的寫法和類很相似。
interface User {
function getName();
function setName($_name);
}
?>
注意,在接口中只能有抽象方法。如果在接口中出現了非抽象方法,會報錯如下:
Interface function User::setName() cannot contain body in ……….
interface User {
function getName();
function setName($_name){}
}
?>
程序運行如下:
Fatal error: Interface function User::setName() cannot contain body in E:\PHPProjects\test.php on line 4
在接口中的抽象方法只能是public的,默認也是public權限。
并且不能設置成 private 或者 protected 類型。
否則會報錯如下:
Access type for interface method User::setName() must be omitted in —on line —
在接口中,訪問類型必須忽略。
interface User {
public function getName();
private function setName($_name);
}
?>
程序運行如下:
Fatal error: Access type for interface method User::setName() must be omitted in E:\PHPProjects\test.php on line 4
protected訪問權限也會有問題
interface User {
public function getName();
protected function setName($_name);
}
?>
程序運行如下:
Fatal error: Access type for interface method User::setName() must be omitted in E:\PHPProjects\test.php on line 4
即使abstract 和 final 修飾符不能修飾接口中的抽象方法。
interface User {
final function getName();
abstract function setName($_name);
}
?>
總結
以上是生活随笔為你收集整理的php 类定义抽象方法吗,PHP面向对象:接口与抽象方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php如何实现添加到购物车_PHP实现添
- 下一篇: 雄安新区铂悦府是哪个开发商?