php抽象类
转载%77%77%77请%2E%66%6F%72%61%73%70%2E%63%6E注明
抽象类(abstract class)机制中总要定义一个公共的基类(base class),而将特定的细节留个继承者实现.如果需要抽象类创建实例,必须创建一个扩展的继承类,通过继承类来创建对象,实现抽象类的方法.
抽象类没有声明继承类的所有方法定义实现的内容.抽象类可以定义缺少方法的原型方法,也可以在定义具有完整实现体的方法.
抽象类规则:
1.某个类只要包含至少一个抽象方法就必须声明为抽象类
2.声明抽象方法,在实现的时候必须有相同的或者更低的访问级别.访问级别public(最低),protected(中间),private(最高)
3.不能用new关键字创建抽象类的实例.
4.如果有抽象类的方法是抽象方法,则该方法不能包含函数体(也没有"{}").
5.如果扩展的类也声明为抽象类时,在扩展抽象类时,就可以不用实现所有的抽象方法.
php抽象类的语法.
类: abstract class classname
方法:abstract function name(){}
举例:
<?php
abstract class write {
function writeurl(){//抽象类的非抽象方法可以有方法体
echo "this url is www.forasp.cn";
}
abstract function writewebname();//抽象方法没有函数体,也没有{}
}
class writeinfo extends write {//扩展/继承抽象类
function writewebname(){//重载writewebname()方法3w.foa($)sp.cn
echo "网站制作学习网";
}
}
$forasp = new writeinfo();//实例化
$forasp->writeurl();//输出:www.forasp.cn
$forasp->writewebname();//输出:网站制作学习网
?>
php只支持从一个基类继承,而不支持从两个或者更多的抽象类中继承.如果从两个或者以上的泪中继承的能力为多重继承,php不支持.
php为了实现多重继承,滴定仪了一种类似于类的结构:接口,下篇文章介绍
原载于:本文原载于www.forasp.cn