php 类的继承问题
写了个公共类classCommonActionextendsAction{function_initialize(){**************************...
写了个公共类
class CommonAction extends Action{
function _initialize(){
******************
************
}
}
这个类继承了上面的公共类
class IndexAction extends CommonAction{
function abc(){
******
}
function bcd(){
***************
}
}
请问有什么方法让只abc方法不继承Common这个公共类?但bcd继续继承。 展开
class CommonAction extends Action{
function _initialize(){
******************
************
}
}
这个类继承了上面的公共类
class IndexAction extends CommonAction{
function abc(){
******
}
function bcd(){
***************
}
}
请问有什么方法让只abc方法不继承Common这个公共类?但bcd继续继承。 展开
3个回答
展开全部
在PHP中类的继承是使用最多的一个编程特性,我们可以创建一个基类(父类)然后在这其中定义一些基本的方法,在我们的子类我们可以扩展父类中的方法这就叫覆盖,但是如果说你在父类的某些很关键的方法你不能被子类继承,因为如果子类继承了这个方法可能给程序带来一定的麻烦,所以我们希望这个方法是“私有”的,是不能被扩展的,这在PHP使用了final关键字来修饰你要不被继承的方法。
PHP final关键字可以修饰类同样可以修改类中的方法,但它们的作用是差不多的,即如果你使用了final关键字来修饰了,那么这个被修饰的类或者方法将不能被扩展或者继承。你只能老老实实去引用它。如果你在类前面使用了final,这就是说明这个类不能使用继承;如果你在方法前使用了PHP final关键字,这就是说明这个方法不能被覆盖。
简单的说,final就是防止父类覆盖的,加上它就不会被父类覆盖
PHP final关键字可以修饰类同样可以修改类中的方法,但它们的作用是差不多的,即如果你使用了final关键字来修饰了,那么这个被修饰的类或者方法将不能被扩展或者继承。你只能老老实实去引用它。如果你在类前面使用了final,这就是说明这个类不能使用继承;如果你在方法前使用了PHP final关键字,这就是说明这个方法不能被覆盖。
简单的说,final就是防止父类覆盖的,加上它就不会被父类覆盖
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
final public function abc()
{
//******
}
{
//******
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询