PHP类实例教程(十七):abstract类和abstract方法
可以使用abstract来修饰一个类或者方法。
用abstract修饰的类表示这个类是一个抽象类,用abstract修饰的方法表示这个方法是一个抽象方法。
抽象类不能被实例化。
抽象方法是只有方法声明,而没有方法的实现内容。
abstract 抽象类
可以使用abstract来修饰一个类。
用abstract修饰的类表示这个类是一个抽象类。
抽象类不能被实例化。
这是一个简单抽象的方法,如果它被直接实例化,系统会报错。<?php
//定义一个抽象类
abstract class User
{
public function __toString() {
return get_class($this);
}
}
//实例化这个类会出现错误
echo new User();
?>
下面例子的 NormalUser 继承自 User类,就可以被实例化了。
<?php
//定义一个抽象类
abstract class User
{
public function __toString() {
return get_class($this);
}
}
//实例化这个类会出现错误
echo new User();
class NormalUser extends User
{
}
$a = new NormalUser();
echo "这个类" . $a . "的实例";
?>
单独设置一个抽象类是没有意义的,只有有了抽象方法,抽象类才有了血肉。下面介绍抽象方法。
abstract 抽象方法
用abstract修饰的类表示这个方法是一个抽象方法。
抽象方法,只有方法的声明部分,没有方法体。
抽象方法没有 {} ,而采用 ; 结束。
一个类中,只要有一个抽象方法,这个类必须被声明为抽象类。
抽象方法在子类中必须被重写。
下面是一个抽象类,其中有两个抽象方法,分别是 setSal() 和 getSal()。用来取回 $sal 员工的工资。
<?php
abstract class User
{
protected $sal = 0;
//这里定义的抽象方法。
//注意抽象方法没有方法体,而且方法结束使用 ; 号。
abstract function getSal();
abstract function setSal();
//定义它的__tostring方法
public function __toString() {
return get_class($this);
}
}
?>
既然User类不能被直接继承,我们写一个NormalUser类继承自User类。当我们写成如下代码时,系统会报错。 这个错误告诉我们,在 User类中有两个抽象方法,我们必须在子类中重写这两个方法。
<?php
abstract class User
{
protected $sal = 0;
//这里定义的抽象方法。
//注意抽象方法没有方法体,而且方法结束使用 ; 号。
abstract function getSal();
abstract function setSal();
//定义它的__tostring方法
public function __toS
相关文档:
<?php
/*
Singleton && Registry Design Pattern Implementation
*/
class Registry {
private $_store = array();
public function getInstance() {
static $instance = array();
if (!$instance) {
$instance[0] = new ......
编者按:学习php是一种枯燥无味,整天和代码打交道的过程,不过相信这篇文章会给你一点启示帮助。
如何学习PHP/学习php的方法,学东西,永远不要妄想有速成这一说,告诉你了一个方式,但是缺少努力这一环节,那也是白搭。 掌握好的学习方法非常必要,看看这篇如何学习PHP/学习php的方法[转载]
相信大家选择一种语言,并不是 ......
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自 ......
前几天在Firebug扩展开发一文中就提到过Firephp这个基于Firebug的插件,通过使用Firephp你可以在Firebug的Console栏中看到要调试的数据,而不影响php程序的正常执行,所以说,这东西对于Ajax开发是很有帮助的!下面一起来看下Firephp的使用方法。
第一步:安装
1.如果你的FireFox没有Firebug这个插件的话,首先要安装Fire ......
http://php.net/manual/en/reserved.variables.httprawpostdata.php
http://www.cnblogs.com/mustardpeanut/archive/2009/06/15/1503395.html
http://blog.csdn.net/letianok/archive/2009/02/27/3941731.aspx
http://www.woria.cn/blog/read.php/596.htm ......