2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > php子类重载父类私有方法的疑问

php子类重载父类私有方法的疑问

时间:2024-05-06 12:50:46

相关推荐

php子类重载父类私有方法的疑问

后端开发|php教程

php子类重载父类私方法的疑问

后端开发-php教程

android 单机游戏源码,ubuntu放弃snap,tomcat是高并发吗,爬虫网站源码,连云港php招聘,博客seo优化有哪些简单的途径lzw

test(10);?>

上述代码中:

子类B虽然继承了A,但是A中的test()是私有方法,原则上应该是不会被继承的,为什么在B中定义一个同名但是参数不同的test()会报错呢,这也算是重载的错误吗?

易语言超级玛丽无敌源码,vscode怎么添加扩展包,ubuntu修复dde,tomcat不加载工程,农村爬虫驱虫,php new 出错,宜昌包年seo推广开户,网站源码带视频播放器,wp模板排行lzw

微信吃粽子大赛源码,ubuntu怎么关掉显卡,爬虫协议的效力,转学php,seo系列封面lzw

回复讨论(解决方案)

test($a);}}$var1=new B;$var1->test1(10);?>

而将B中的public该为private就不会报错

你看看错误信息不就知道怎么回事了吗?

你看看错误信息不就知道怎么回事了吗?

我知道错误的原因是重写,但是有两个疑问:

1.父类的private方法不是不会被继承吗,为什么会导致重写?

2.为什么子类中public和protected会报错,而private不会报错?

class B extends A{ public function test($a){ echo "testB".$a; }}

能麻烦解释一下吗?

不是重写,是覆盖

覆盖的条件是保护方式和参数一致

这种从 java 硬拽过来的玩意,违背了 php 的初衷,并最终导致 php 的死亡

连 C# 都在推出“动态语言”了,php 还逐步静态化,这不是倒退吗?

不是重写,是覆盖

覆盖的条件是保护方式和参数一致

这种从 java 硬拽过来的玩意,违背了 php 的初衷,并最终导致 php 的死亡

连 C# 都在推出“动态语言”了,php 还逐步静态化,这不是倒退吗?

重写和覆盖不是一个意思吗?

可能我没表达清楚,我的意思是父类中的private test()方法不是不可以继承吗,那么在子类中理论上我可以起一个名为test()的函数,并且参数列表也是任意的,可是这段代码会报错。 所以是不是不能继承的方法也存在重写?

test(10);?>

而下面这段代码在子类中,如果是重写,那么为什么参数列表不一致正确呢?

test($a);}}$var1=new B;$var1->test1(10);?>

B::test 是重新定义,或是说是重写(覆盖)

重载,在 php 中是不支持的

至于说那些所谓的语法检查,那都是胡扯的,硬拽进来拖慢 php 速度用的

B::test 是重新定义,或是说是重写(覆盖)

重载,在 php 中是不支持的

至于说那些所谓的语法检查,那都是胡扯的,硬拽进来拖慢 php 速度用的

就是说B::test()跟父类没有半毛钱关系对吧,谢谢了。

对的,对的,对的

B::test 是重新定义,或是说是重写(覆盖)

重载,在 php 中是不支持的

至于说那些所谓的语法检查,那都是胡扯的,硬拽进来拖慢 php 速度用的

或者说此处不存在重写,只是在B类中定义了一个新的函数test()而已。

但形式上是重写了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。