PHP类继承的引入扩展
我们已经工作了这么长时间了,这个项目的经验相当多,但是当问到底层的时候,常常是沉默的。那是真正的核心东西已经被框架封装了。总感觉总是进展缓慢,在设计思想的底部,往往也只能是。随着时间的推移,我们经常觉得书要用方恨少,那么我们就要设计追赶的思路。今天,首先复习类继承。
类继承非常重要。作为一个程序员,基本上每天都会和他打交道,但你真的知道吗以下是从官方网站上看到的。
一个类可以继承另一个类的方法和属性,通过延伸在declaration.php不支持多重继承,一个类只能继承一个基类。
继承的属性和方法可被重定义的相同的名称。但如果最终是用来当父类定义的方法,该方法不能被重写。家长:可用于访问覆盖方法或属性。
当方法被覆盖,该参数必须保持一致或PHP会发出错误的信息,在e_strict水平。但随着构造函数除外,构造函数可以使用不同的参数时,重写。
每个人都知道基本概念是必要的,但对于最终和家长来说:我真的没有在项目中使用它,我感到羞愧。
下面是这两个关键词的用法。
final关键字
PHP 5增加了一个关键字,如果父类中的方法被声明为最终的,子类不能覆盖该方法。同样,如果一个类被声明为最终的,它就不能继承。
需要注意的是属性不能定义为最终的,只有类和方法可以定义为最终的。
范围解析运算符(:)
范围解析运算符,或者简单地是一对冒号,可以用于访问静态成员、类常量和覆盖类中的属性和方法。
在类定义中,使用自、父和静态的三个特殊关键字来访问它们的属性或方法。
如果子类重写父类中的方法,PHP不调用方法,已覆盖父类中,调用父类的方法依赖于子类。这种机制也作用于构造函数和析构函数,过载,和神奇的方法。
下面是调用父类的方法的一个示例:
复制代码代码如下所示:
< PHP
类
{
保护功能myfunc(){
回声MyClass::myfunc()();
}
}
类OtherClass延伸MyClass
{
父类/覆盖的定义
公共职能myfunc()
{
但是仍然可以调用父类方法。
家长::myfunc();
回声OtherClass::myfunc()();
}
}
美元类=新OtherClass();
美元类-> myfunc();
输出> *
* MyClass::myfunc()
* OtherClass::myfunc()
* /
>
当引用类定义之外的这些项时,使用类名。
5.5类:PHP,关键字class也可以用于解析类名称。使用类名::类,你可以得到一个字符串包含类名的类的完全限定名。这类使用命名空间是特别有用的。这些可能在未来成为讨论的主题,和这个概念是在后面讨论,现在我们仍然使用PHP5.3。
但说实话,有一些关键词,是很难使用的小项目,但我想知道更多关于它,尤其是当你使用一些第三方类库,当你研究他的程序的逻辑,你总是可以学到一些东西,虽然有些东西你不需要很长一段时间,你会忘记,但毕竟,他穿过了你的心,永远留下痕迹的未来。
我不说最后一个词,分享一系列解析操作符(::)应用程序代码,你也会感觉到:
复制代码代码如下所示:
< PHP
类钙
{
*直接使用的测试属性的默认值
* /
保护静态项= 'foo美元;
*间接使用的测试属性的默认值
* /
保护静态美元其他=返回的;
公共静态函数法()
{
打印自我:$项目。 ;
打印自我:$其他。 ;
}
公共静态函数setother(美元值)
{
自我:$;
}
}
类扩展CA
{
*重新定义测试属性的默认值。
* /
保护静态项= 'bar美元;
公共静态函数setother(美元值)
{
自我:$;
}
*不要再声明方法()方法
* /
}
类扩展CA
{
*重新定义测试属性的默认值。
* /
保护静态项= 'tango美元;
公共静态函数法()
{
打印自我:$项目。 ;
打印自我:$其他。 ;
}
*不要再声明setother()方法
* /
}
类CD扩展CA
{
*重新定义测试属性的默认值。
* /
保护静态项= 'foxtrot美元;
*不声明任何方法来实现上述过程
* /
}
答::setother('cb '); / / CB(法)!
CB::方法(ca)!
抄送:setother('cc '); / /钙(法)!
cc::方法(cc)!
CD::setother('cd '); / /钙(法)!
CD::方法(ca)!
输出> *
* Foo
* CB
* Tango
* CC
* foo
* CD
* /
>
PHP扩展类继承代码示例:
复制代码代码如下所示:
< PHP
类{
公共$ x;
公共$ Y;
功能__construct($ X = 0,Y元= 0){
$;
此$ = y = y;
}
函数getX(){
返回$;
}
功能盖蒂(){
返回$;
}
功能(__destruct){ }
}
类A2扩展{ }
扩展是继承的函数。
$ B2 =新A2(10,10);
echo $ B2 -> getX()。
echo $ B2 ->盖蒂();
>
以上描述是PHP扩展类继承的所有实现步骤。