设为首页|加入收藏 精品推荐:
返回首页>>当前位置:主页 > php随笔 >

php开发_abstract(抽象),final(最终)和static(静态)的原理与用法

来源:未知 | 作者:技术小白 | 点击:
php开发_abstract(抽象),final(最终)和static(静态)的原理与用法
 
本文叙述PHP中abstract(笼统)、final(终究)和static(静态)原理与用法,具体如下:

abstract(笼统)
PHP 5 支持笼统类和笼统办法。界说为笼统的类不能被实例化。任何一个类,假如它里面至少有一个办法是被声明为笼统的,那么这个类就有必要被声明为笼统的。被界说为笼统的办法只是声明了其调用办法(参数),不能界说其具体的功用完成。

承继一个笼统类的时,子类有必要界说父类中的一切笼统办法;另外,这些办法的拜访操控有必要和父类中一样(或者更为宽松)。例如某个笼统办法被声明为受维护的,那么子类中完成的办法就应该声明为受维护的或者公有的(严厉程度:private>protected>public),而不能界说为私有的。此外办法的调用办法有必要匹配,即类型和所需参数数量有必要共同。例如,子类界说了一个可选参数,而父类笼统办法的声明里没有,则两者的声明并无冲突。 这也适用于 PHP 5.4 起的结构函数。在 PHP 5.4 之前的结构函数声明可以不一样的。

php开发_abstract(抽象),final(最终)和static(静态)的原理与用法

总结:

笼统类不能被实例化;

类中有任何笼统办法那这个类也有必要为笼统的;

笼统类只能声明调用办法和参数,不能界说具体功用完成;

承继笼统类的子类有必要完成笼统类的一切笼统办法;

子类中完成的笼统办法的拜访操控有必要比父类的拜访操控更严厉;

子类中完成的办法的调用办法及参数数量有必要与被完成的办法共同。

final
假如父类中的办法被声明为 final,则子类无法掩盖该办法。假如一个类被声明为 final,则不能被承继。

这个比较好理解,不做赘述

static
声明类特点或办法为静态,就可以不实例化类而直接拜访。静态特点不能通过一个类已实例化的目标来拜访(但静态办法可以)。

为了兼容 PHP 4,假如没有指定拜访操控,特点和办法默以为公有。

因为静态办法不需要通过目标即可调用,所以伪变量 $this 在静态办法中不可用。

静态特点不可以由目标通过 -> 操作符来拜访。

用静态办法调用一个非静态办法会导致一个 E_STRICT 等级的过错。

就像其它一切的 PHP 静态变量一样,静态特点只能被初始化为文字或常量,不能使用表达式。所以可以把静态特点初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个目标。

自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。

总结:

静态办法无需实例化,可直接拜访;

类实例化的目标无法拜访类中的静态特点,可是可以拜访静态办法;

伪变量 $this 在静态办法中不可用;

静态特点不可以由目标通过 -> 操作符来拜访;

用静态办法调用一个非静态办法会导致一个 E_STRICT 等级的过错;

静态特点只能被初始化为文字或常量,不能使用表达式(函数返回值/宁一个变量/目标);

可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。
php开发_abstract(抽象),final(最终)和static(静态)的原理与用法

您可能对以下内容感兴趣

小编分享

  • 广告位一
  • 广告位二
  • 广告位三
  • 广告位四
  • 广告位五

最新评论文章

回到顶部